在用C#开发Web应用时有个痛点,就是本机用VS开启Web应用调试时外部机器无法访问此Web应用。这里将会介绍如何通过设置允许局域网和外网机器访问本机的Web应用。

目录

1. 设置内网访问

2. 设置外网访问

1. 设置内网访问

在设置之前,本机环境如下:

操作系统:win7

IDE:Visual Studio 2010

应用:ASP.net

想要实现局域网内其他机器访问本机web应用包含以下4步:

第一步:设置启动方式为IIS Express

Visual Studio 运行Web应用时,默认采用自身的Visual Studio开发服务器。所以先要把项目改为用 IIS Web服务器。

首先确保机器已经装了IIS Express,下载地址(10.0版本):https://www.microsoft.com/zh-CN/download/details.aspx?id=48264

步骤:右键Web项目 → 属性 → Web选项卡 → 勾选使用本地IIS Web 服务器 → 设置端口并点击【创建虚拟目录】按钮

第二步:设置IIS Express的applicationhost.config文件

点击上面操作的【创建虚拟目录】按钮后,会在IIS Express的applicationhost.config文件创建虚拟目录信息。

文件默认路径:%userprofile%\My Documents\IISExpress\config\applicationhost.config

找到上面应用程序的配置信息,添加一条<binding>

<binding protocol="http" bindingInformation="*:8081:*" />

示例图

注意:修改前若已启动了IIS Express,修改后需要重新启动IIS Express才生效。

第三步:设置windows 防火墙

完成上面2步后,还需要设置防火墙允许此端口通过。

1) 图形操作:

打开 Windows 防火墙的高级设置:

① 控制面板 → Windows 防火墙 → 高级设置

② 创建一条入站规则:协议TCP、端口为8081。

示例图

2) 命令行

也可以执行以下命令添加一条入站规则:

netsh advfirewall firewall Add rule name=\"命令行Web访问8081\" dir=in protocol=tcp localport=8081 action=allow

结果

第四步:配置URL保留项

在Windows 7,可使用 Netsh.exe 工具配置HTTP设置,允许指定URL通过。

以管理员身份运行cmd命令:

netsh http add urlacl url=http://*:8081/ user=everyone

该命令为所有帐户的指定 URL 命名空间添加一个 URL 保留项

更多netsh资料,可访问相关MSDN:配置 HTTP 和 HTTPS

运行图

2. 设置外网访问

设置好内网可访问后,想要外网的小伙伴访问本机,可通过以下2种方法:

1) 端口映射

2) 内网穿透

2.1 端口映射

前提条件:拥有路由器设置权限。

在对外的路由器中设置一条端口映射规则,访问外部IP地址时跳转到局域网机器上。具体操作这里不阐述。

2.2 内网穿透

在公司内开发web应用时,不是所有人都可以申请端口映射的权限,所以这时候就要有个内网穿透的解决方案了。

网络上提供内网穿透的应用有很多,这里使用的是花生壳(官网:http://hsk.oray.com/)。

示例

注意:微信OAuth2.0进行域名跳转时会加上端口号,此时域名端口为80,本机端口为8081,跳转后的地址为域名:8081会显示错误。解决方法只需要设置本机web应用的端口也为80即可。

运行图

End
菜单加载中...

C# Web应用调试开启外部访问的更多相关文章

  1. [MySql] - 开启外部访问

    打开 mysql 的查询窗口(使用root),使用SQL: -- 使用mysql库 use mysql; -- 更新密码 update user set password=PASSWORD('xxxx ...

  2. 【Azure微服务 Service Fabric 】Service Fabric中应用开启外部访问端口及微服务之间通过反向代理端口访问问题

    问题描述 1) 当成功的在Service Fabric集群中部署了应用后,如何来访问呢?如果是一个Web服务,它的URL又是什么呢? 2) 当Service Fabric集群中,服务之间如需要相互访问 ...

  3. linux mysql 数据库开启外部访问设置指南

    Linux下设置MySQL和允许外部机器访问,具体目录是具体情况而定,有的人是安装了在个人目录下,则找到对应的目录则可以 Linux下设置MySQL和允许外部机器访问sudo vi /etc/my.c ...

  4. 开启mysql外部访问(root外连)

    MySQL外部访问 mysql 默认是禁止远程连接的,你在安装mysql的系统行运行mysql -u root -p 后进入mysql 输入如下: mysql>use mysql; mysql& ...

  5. IIS Express 配置外部访问

    IIS Express是Visual Stuido自带的微型Web服务器,简单易用. IIS Express默认只允许本机访问,通过Visual Studio调试Web程序时,我们有时需要通过外部访问 ...

  6. 【转】手机web前端调试页面的几种方式

    前言 PC端web页面调试比较容易,这里主要说几种移动端调试的方法,从简单到复杂.从模拟调试到远程调试,大概分为几部分: 1.Chrome DevTools(谷歌浏览器)的模拟手机调试 2.weinr ...

  7. 安卓手机移动端Web开发调试之Chrome远程调试(Remote Debugging)

    一.让安卓打debug模式的apk包 二.将电脑中的chrome升级到最新版本,在chrome浏览器地址栏中输入chrome://inspect/#devices: 在智能手机还未普及时,移动设备的调 ...

  8. 手机web前端调试页面的几种方式

    前言 PC端web页面调试比较容易,这里主要说几种移动端调试的方法,从简单到复杂.从模拟调试到远程调试,大概分为几部分: 1.Chrome DevTools(谷歌浏览器)的模拟手机调试 2.weinr ...

  9. 【转载】浅析从外部访问 Kubernetes 集群中应用的几种方式

    一般情况下,Kubernetes 的 Cluster Network 是属于私有网络,只能在 Cluster Network 内部才能访问部署的应用.那么如何才能将 Kubernetes 集群中的应用 ...

随机推荐

  1. 线性数据结构之栈——Stack

    Linear data structures linear structures can be thought of as having two ends, whose items are order ...

  2. 自定义Inspector检视面板

    Unity中的Inspector面板可以显示的属性包括以下两类:(1)C#以及Unity提供的基础类型:(2)自定义类型,并使用[System.Serializable]关键字序列化,比如: [Sys ...

  3. CRL快速开发框架系列教程九(导入/导出数据)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  4. jQuery可拖拽3D万花筒旋转特效

    这是一个使用了CSS3立体效果的强大特效,本特效使用jQuery跟CSS3 transform来实现在用户鼠标按下拖动时,环形图片墙可以跟随鼠标进行3D旋转动画. 效果体验:http://hovert ...

  5. form表单验证-Javascript

    Form表单验证: js基础考试内容,form表单验证,正则表达式,blur事件,自动获取数组,以及css布局样式,动态清除等.完整代码如下: <!DOCTYPE html PUBLIC &qu ...

  6. iOS中支付宝集成

    iOS中支付宝集成 如今各种的App中都使用了三方支付的功能,现在将我在使用支付宝支付集成过程的心得分享一下,希望对大家都能有所帮助 要集成一个支付宝支付过程的环境,大致需要: 1>公司:先与支 ...

  7. Linux监控工具介绍系列——OSWatcher Black Box

      OSWatcher Balck Box简介 OSWatcher Black Box (oswbb)是Oracle开发.提供的一个小巧,但是实用.强大的系统工具,它可以用来抓取操作系统的性能指标,用 ...

  8. v14.0\AspNet\Microsoft.Web.AspNet.Props 找不到

    错误 E:\Github\AutoMapper\src\AutoMapper\AutoMapper.CoreCLR.kproj : error  : 未找到导入的项目"C:\Program ...

  9. Dancing Links and Exact Cover

    1. Exact Cover Problem DLX是用来解决精确覆盖问题行之有效的算法. 在讲解DLX之前,我们先了解一下什么是精确覆盖问题(Exact Cover Problem)? 1.1 Po ...

  10. JavaMail发送邮件

    发送邮件包含的内容有: from字段  --用于指明发件人 to字段      --用于指明收件人 subject字段  --用于说明邮件主题 cc字段     -- 抄送,将邮件发送给收件人的同时抄 ...