在Visual Studio 2015中调试我的网站后,我可以通过localhost:50544访问它。我想在不同的计算机上访问我的网站,该网站也在同一个网络上。为此,我应该能够访问计算机地址192.168.1.13:50544。
但是,在访问此地址时,我收到了错误的请求,无效的主机名'错误。即使我在提供网站的同一台机器上访问它。
根据建议here我创建了以下Windows防火墙规则,并尝试完全关闭防火墙。
我正在使用IIS express,因此已添加到'〜\ Documents \ IISExpress \ config \ applicationhost.config'文件
<binding protocol="http" bindingInformation=":8080:localhost" /> //original rule
<binding protocol="http" bindingInformation="*:50544:192.168.1.13" />
但是在任何一台机器上访问192.168.1.13:50544仍然会导致错误请求&#39;错误。
答案 0 :(得分:21)
bindingInformation
属性的格式为:
ip address:port:host header
您需要的是:
bindingInformation="192.168.1.13:50544:*"
<强>更新强>
似乎有些人错误地认为这个答案是不正确的。首先阅读文档(参见上面的链接)并阅读示例。
其次IIS和IIS Express本质上是相同的产品。 IIS Express已经过调整,因此非管理员可以在开发人员PC上运行IIS,因为他们可能没有完全的本地管理员权限。尽管如此,IIS和IIS Express都使用相同的applicationHost.config
文件格式,这意味着两个产品的bindingInformation
属性格式完全相同。
(错误的):50544:192.168.1.13
bindingInformation
字符串有效的原因是(正确或错误):
如果没有指定主机头
如果绑定信息字段的第一部分中没有匹配的IP地址
...然后IIS将尝试匹配绑定信息字符串的主机头部分中的IP地址。
IIS7 +和IIS Express的正确格式一直是:
ip_address:port:host_header
答案 1 :(得分:21)
您必须以管理员身份运行Visual Studio
在Visual Studio 2015中,applicationhost.config
位于项目本身的文件夹中。 Esc MyProjectName\.vs\config
,请注意.vs
文件夹可能会被隐藏。从那里更改IP,而不是IISExpress文件夹。
您的<binding protocol="http" bindingInformation="*:50544:192.168.1.13" />
是正确的。
答案 2 :(得分:9)
我们制作了一个名为Conveyor的扩展程序,您可以使用它来打开IIS Express以进行外部访问,而无需更改任何配置。
https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti
答案 3 :(得分:0)
我遇到了与远程访问相同的问题,我尝试了所有这些提示来解决它。对我来说,帮助在Web项目配置中勾选“允许匿名身份验证”。
答案 4 :(得分:0)
直到今天我一切都很好。
applicationhost.config
文件正常我刚刚禁用了"Enable Edit and continue"
(在csproj中),并且它停止了工作。我再次启用它,然后我们又去了。
希望这会有所帮助
答案 5 :(得分:0)
如果有人仍然对此有疑问,为我解决的问题是在管理员模式下运行Visual Studio。
我已经读到某个地方,如果不在IIS模式下,IIS将不允许您使用除本地主机以外的任何其他主机(在编辑配置文件后,我收到了无法启动IIS的错误消息)
正如OP所述,这非常重要,请编辑项目中的文件(%PROJECT%\。vs \%PROJECT%\ config \ applicationhost.config),而不是IIS Express文件夹中的文件...