我正在尝试测试我在本地IISExpress实例中运行的网站以及我本地网络上的其他一些机器/设备 . 我正在运行Win7 Pro .
当我第一次尝试从本地网段上的另一台机器浏览到我的机器时,出现400错误:主机名无效 .
我知道我需要在提升的命令提示符下使用命令授予对ACL的远程访问权限,如:
netsh http add urlacl url=http://mymachinename:50333/ user=everyone
现在我得到503服务不可用错误 .
Windows防火墙当前已关闭,我可以使用地址 http://localhost:50333
浏览我的本地IISExpress实例
这个配置难题的最后一块是什么?
9 回答
看起来您在applicationhost.config文件中缺少绑定信息条目 .
打开applicationhost.config文件 . 可能的位置是:
%userprofile%\Documents\IISExpress\config\applicationhost.config
$(solutionDir)\.vs\config\applicationhost.config
(VS2015)如果失败,请检查
iisexpress.exe
的输出以确定 .使用您的机器名称绑定后,找到您的WebSite条目和 add .
只有一件事对我有用 .
使用
*:portnumber:*
并不好 . 是的,在这样做并确保Windows防火墙打开后,我可以连接到端口,但我仍然遇到"503"错误 .我在本地测试了一些东西,发现只有http://localhost工作了 . 使用真实IP地址(不是127.0.0.1,但是,例如,192.168.1.50),仍然在本地计算机上返回503 . 我尝试在绑定中使用真实主机名,但IIS Express拒绝启动 . 这实际上可能与主机名的解析方式有关 . 我没有进一步探索 .
最后,我最终使用了这个配置:
通过这种方式,我能够使用
http://192.168.1.50:53351
从远程计算机进行连接 .在这样一个完整的主题上浪费了超过3小时后,我决定与你分享我的设置 . 我的配置是Windows 8上的Visual Express 2012 for Web update 4.这是我第一次回到MS VS自学习(至少8年),现在我确信linux规则 . 在django这种设置花了我10分钟的搜索文档 .
Documents\IISExpress\config\applicationhost.config
不是从VS IDE手动运行IISExpress
你会看到ISSExpress正在注册绑定
运行浏览器
http://mylocaldomain.com:53351
如果它正常工作,那么我们可以添加防火墙规则添加防火墙规则
如果您想访问本地网络使用localsubnet,如果您想从外部访问您的服务器,请将remoteip设置为any
如果所有内容都在本地和公共IP上运行,请再次检查_0009
祝你好运
拉法尔
发现问题与坏的urlacl映射有关 . 想一想:
并查找
http://+:80/
或您绑定的端口等内容 .然后用
这解决了我的问题 .
没有什么对我有用 . 最后我找到iisexpress-proxy
看我的回答https://stackoverflow.com/a/33623399/631527
另一种解决方案是
ngrok
是什么帮助我,是右键单击'IISExpress'图标,'显示所有应用程序' . 然后选择网站,我看到它使用了哪个aplicationhost.config,并且纠正完美 .
问题是更新web文件夹中的applicationhost.config文件而不是解决方案 . 解决方案配置文件是要更改的文件
关于Anthony Rizzolo的回答:在Windows 8.1中,我必须输入如下内容:
例如:
以上答案都不适合我 .
我在netsh中有两个相同服务的条目
netsh http show urlacl
一个使用强通配符,另一个使用弱通配符 .
删除弱通配符的那个就完成了这项工作 .
更多关于netsh背景下的强弱通配符
https://docs.microsoft.com/en-gb/windows/desktop/Http/urlprefix-strings