在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相关问答推荐

SignalR 不在服务器上使用 Session

ASP.NET web api 无法获取 application/x-www-form-urlencoded HTTP POST

我可以在 .net 核心中使用 Entity Framework 6(非核心)吗?

如何从以特定名称开头的 appsettings 键中获取所有值并将其传递给任何数组?

如何使用三个按钮是否和取消显示确认alert ,如 MS Word 中所示

'Microsoft.ACE.OLEDB.12.0' 提供程序未在本地计算机上注册.

System.Linq.Dynamic 不支持 OrderByDescending("someColumn")?

新的 ASP.NET MVC 5 应用程序如何知道如何创建数据库以及帐户控制器如何访问数据库?

温莎城堡有什么缺点吗?

Windows 运行 ASP.NET 的 IIS 替代方案

ASP.NET 上的 WebSockets 教程

Page.IsValid 是如何工作的?

使用 jQuery 调用 ASP.NET PageMethod/WebMethod - 返回整个页面

ASP.NET MVC 2.0 JsonRequestBehavior 全局设置

ASP.net 中是否有 after Page_Load 事件

ServiceStack 示例应该以什么顺序被理解?

ASP.NET 身份,需要强密码

避免将重复元素添加到列表 C#

Application_Start 和 Application_OnStart 之间的区别

目录与目录信息