在用c#开发网络应用时有个痛点,就是本机用VS开启网络应用调试时外部机器无法访问此Web应用。这里将会介绍如何通过设置允许局域网和外网机器访问本机的网络应用。
目录
1只设置内网访问
2只设置外网访问
,
1。设置内网访问
在设置之前,本机环境如下:
<强>操作系统强>:这个
<强> IDE 强>:Visual Studio 2010
<强>应用强>:ASP.net
想要实现局域网内其他机器访问本机网络应用包含以下4步:
,
第一步:设置启动方式为IIS Express
Visual Studio运行网络应用时,默认采用自身的Visual Studio开发服务器。所以先要把项目改为用,<强> IIS web >强服务器。
首先确保机器已经装了<强> IIS Express >强,下载地址(10.0版本):https://www.microsoft.com/zh-CN/download/details.aspx?id=48264
<强>步骤强>:右键Web项目→属性→网络选项卡→勾选使用本地IIS Web服务器→设置端口并点击【创建虚拟目录】按钮
,
第二步:设置IIS Express的applicationhost。配置文件
点击上面操作的【创建虚拟目录】按钮后,会在IIS Express的<强> applicationhost。配置>强文件创建虚拟目录信息。
<强>文件默认路径强>:% userprofile % \ IISExpress \ config \ \我的文档applicationhost。配置
找到上面应用程序的配置信息,添加一条<强> & lt; binding> 强>:
<代码类=癱sharp平原”> 1 & lt;绑定协议=代码> <代码类=癱sharp字符串”>“http”代码>,<代码类=癱sharp平原”> bindingInformation=代码> <代码类=癱sharp字符串”>“*:8081:*”代码>,<代码类=癱sharp平原”>/祝辞代码><强>示例图强>:
<强>注意强>:修改前若已启动了IIS Express,修改后需要重新启动IIS Express才生效。
,
第三步:设置窗防火墙
完成上面2步后,还需要设置防火墙允许此端口通过。
1)图形操作:
打开窗户防火墙的高级设置:
①控制面板→windows防火墙→高级设置
②创建一条入站规则:协议TCP、端口为8081 .
<强>示例图强>:
,
2)命令行
也可以执行以下命令添加一条入站规则:1
<代码类=癱sharp平原”> netsh advfirewall防火墙添加规则名称=\“命令行网络访问8081 \“dir=代码> <代码类=" csharp关键字"> 代码>,<代码类=癱sharp平原”>协议TCP localport=8081行动==允许代码><强>结果强>:
,
第四步:配置URL保留项
在windows 7,可使用netsh。exe工具配置HTTP设置,允许指定URL通过。
以管理员身份运行cmd命令:1
<代码类=癱sharp平原”> netsh HTTP添加urlacl URL=HTTP: 代码> <代码类=" csharp评论">//*:8081/user=每个人代码>该命令为所有帐户的指定URL命名空间添加一个URL保留项
更多netsh资料,可访问相关MSDN:配置HTTP和HTTPS
,
运行图
,
2。设置外网访问
设置好内网可访问后,想要外网的小伙伴访问本机,可通过以下2种方法:
1)端口映射
2)内网穿透
,
2.1端口映射
<强>前提条件强>:拥有路由器设置权限。
在对外的路由器中设置一条端口映射规则,访问外部IP地址时跳转到局域网机器上。具体操作这里不阐述。
,
2.2内网穿透
在公司内开发网络应用时,不是所有人都可以申请端口映射的权限,所以这时候就要有个内网穿透的解决方案了。
网络上提供内网穿透的应用有很多,这里使用的是<强>花生壳强>(官网:http://hsk.oray.com/)。
<强>示例强>:
<强>注意强>:微信OAuth3.0进行域名跳转时会加上端口号,此时域名端口为80本机端口为8081跳转后的地址为域名:8081会显示错误。解决方法只需要设置本机网络应用的端口也为80年即可。