gat*_*r88 77 asp.net asp.net-mvc visual-studio-debugging iis-express visual-studio-2012
我有一个在VS2012中开发的测试ASP.NET MVC3应用程序.当我开始调试时,通过请求从主机访问应用程序http://localhost:<portnumber>.但是,如果我试图通过从远程计算机访问企业内网中相同的应用程序http://<ip>:<portnumber>,我得到HTTP error 400: Bad request. Invalid Host Name.至于它运行在IIS发表任何服务器配置无法访问.
有什么方法可以解决这个问题吗?
Gar*_*lie 133
更新
我制作了一个更好地描述过程的视频,https://youtu.be/5ZqDuvTqQVs
如果您使用的是VS2013或更高版本,请确保以管理员身份运行它以使其正常工作.
%USERPROFILE%\My Documents\IISExpress\config\applicationhost.config(在VS2015中可能是$(solutionDir)\.vs\config\applicationhost.config)文件.在里面你应该看到这样的东西:
<site name="WebSite1" id="1" serverAutoStart="true">
<application path="/">
<virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:8080:localhost" />
</bindings>
</site>
Run Code Online (Sandbox Code Playgroud)
更改bindingInformation=":8080:localhost"为bindingInformation="*:8080:*"(端口号,在我的情况下为8080,将有所不同.)
注意:如果不起作用,bindingInformation="*:8080:可以删除asterix.
然后确保您的防火墙允许该端口上的传入连接.您可能需要重新启动系统或至少Visual Studios才能让IISExpress重新加载配置文件.
如果这不起作用,请看看这个答案:https://stackoverflow.com/a/5186680/985284
gre*_*mac 38
在您的解决方案目录中,在文件中.vs\config\applicationHost.config更改行
<binding protocol="http" bindingInformation="*:44302:localhost" />
至
<binding protocol="http" bindingInformation=":44302:" />
(44302是你的港口)
从管理员命令提示符:
一世.启用非管理员绑定到端口
netsh http add urlacl url=http://*:44302/ user=Everyone
II.允许通过防火墙
netsh advfirewall firewall add rule name="IISExpress visualstudio app" protocol=tcp localport=44302 dir=in action=allow
hva*_*an3 10
由于我无法在@Garret Fogerlie的帖子中添加评论并回应评论者的问题(@ Y.Ecarri和@SamuelEdwinWard),我遵循Garret建议的,使用Visual Studio 2013,在管理模式下运行并更改application.config文件.
在启动调试并看到我收到相同的错误消息后,我回过头来application.config看到我的网站的新条目已经创建,就像Y.Ecarri的问题一样.
所以我停止了调试,在Visual Studio中保持我的解决方案打开,并application.config再次为新条目编辑文件.我也完全删除了*唱歌localhost,所以我对新条目有以下内容:
<binding protocol="https" bindingInformation=":44300:" />
oli*_*ren 10
如何避免以管理员身份运行Visual Studio
使用Garret和@ shangkeyun的答案,您可以实现连接到正在运行的网站,而无需以管理员用户身份运行Visual Studio:
%USERPROFILE%\My Documents\IISExpress\config\applicationhost.configname=MySiteName<binding>该<bindings>部分中的现有项目.你现在应该有两行binding.它现在应该是这样的,假设端口是12345:
<binding protocol="http" bindingInformation="*:12345:localhost" />
<binding protocol="http" bindingInformation="*:12345:" />
Run Code Online (Sandbox Code Playgroud)通过以管理员身份运行以下cmd来删除所有防火墙限制:
netsh http add urlacl url=http://*:12345/ user=Everyone
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
85802 次 |
| 最近记录: |