在Visual Studio2015中调试我的网站后,我可以通过localhost:50544访问它.我想在另一台计算机上访问我的网站,该计算机也在同一网络上.为此,我应该能够访问计算机地址192.168.1.13:50544.

然而,当访问这个地址时,我收到一个"错误的请求,无效的主机名"错误.即使我在网站服务的同一台机器上访问它.

按照建议here,我创建了以下windows防火墙规则,并try 完全关闭防火墙.picture of firewall rule

我使用的是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仍然会导致"请求错误"错误.

推荐答案

bindingInformation属性的格式为:

ip address:port:host header

您需要的是:

bindingInformation="192.168.1.13:50544:*"

来源:https://www.iis.net/configreference/system.applicationhost/sites/site/bindings/binding?showTreeNavigation=true#006

Update:

似乎有些人错误地认为这个答案是错误的.首先,阅读文档(见上面的链接)并阅读示例.

其次,IIS和IIS Express本质上是同一个产品.IIS Express已经过调整,非管理员可以在开发人员PC上运行IIS,在那里他们可能没有完全的本地管理员权限.尽管如此,IIS和IIS Express使用相同的applicationHost.config文件格式,这意味着这两种产品的bindingInformation属性格式完全相同.

(不正确的):50544:192.168.1.13 bindingInformation字符串工作的原因是(正确或错误的):

  • 如果没有指定主机头

  • 如果绑定信息字段的第一部分中没有匹配的IP地址

... 然后IIS将try 匹配绑定信息字符串的主机头部分中的IP地址.

IIS7+和IIS Express的正确格式是,并且一直是:

ip_address:port:host_header

Asp.net相关问答推荐

如何在 asp.net 服务器中使用字体

在 Windows Server 2008 IIS7 上的 ASP.NET 中写入事件日志(log)

如何在运行时判断动态数据类型的类型?

有条件地在 Gridview 中隐藏 CommandField 或 ButtonField

下载功能在 asp.net 的更新面板中不起作用

我可以创建 .config 文件并将其包含到 web.config 中吗?

相当于服务器端的 ASP.NET 包括

如何将 Web 应用程序项目转换为类库项目

最佳服务器端 .NET PDF 编辑库

如何在asp.net mvc的html.actionlink中调用javascript函数?

会话变量保存在哪里?

MVC5 身份验证中的......与主域之间的信任关系失败

如何使用 WebRequest 发布数据并从网页获取响应

有条件地排除 ASP.NET WebForms 中的一个 html 块

将新行添加到数据表的顶部

svg 无法在 localhost 上的 IIS 网络服务器上运行

如何在 ASP.NET MVC 中设置时区?

如何在我自己的方法中模仿 string.Format()?

如何在 asp.net 中更改 DataBinder.Eval 的日期格式?

当文件上传超出 ASP.NET MVC 中允许的大小时显示自定义错误页面