C# 使用IP地址而不是本地主机时获取HTTP错误400
我用C#和VS2015创建了一个带有Rest API的简单Web应用程序。web应用程序正在C# 使用IP地址而不是本地主机时获取HTTP错误400,c#,asp.net,rest,C#,Asp.net,Rest,我用C#和VS2015创建了一个带有Rest API的简单Web应用程序。web应用程序正在http://localhost:1623而且工作正常 现在我正在测试RESTAPI,用Postman发布一篇文章,我的url就是一个例子http://localhost:1623/api/foo/bar带有标题内容类型:application/json。一切都很好,我得到了正确的回答 我的电脑的本地IP地址是192.168.0.174,因此我将url更改为http://192.168.0.174:162
http://localhost:1623
而且工作正常
现在我正在测试RESTAPI,用Postman
发布一篇文章,我的url就是一个例子http://localhost:1623/api/foo/bar
带有标题内容类型:application/json
。一切都很好,我得到了正确的回答
我的电脑的本地IP地址是192.168.0.174
,因此我将url更改为http://192.168.0.174:1623/api/foo/bar
现在我得到了HTTP错误400。请求主机名无效,为什么?不应该是一样的吗?。如果我尝试使用192.168.0.174:1623而不是http://localhost:1623
在我的浏览器中:
当我尝试使用IP从局域网中的其他设备使用API时,我会遇到相同的错误。我需要使用IP,因为我需要从我的网络访问它,为什么它不工作,我缺少什么?我尝试了,但没有成功。IIS是一个多网站服务器。站点的方式不同于主机头名称。所以你需要在你的网站上设置它
请参阅此链接以进行安装:
通过回答编辑applicationhost.config
解决了这个问题,即在VS2015中,它位于[Project Folder]\.vs\config\applicationhost.config:
由于Jack答案中的链接URL目前不起作用
答案(至少对我来说)包含在另一个问题的答案中
问题,我会在这里重复答案:
可以设置多个绑定。因此,您可以设置绑定
对于您希望服务的每个外部地址,它将起作用:
也很有帮助。就我而言,我做到了:
<bindings>
<binding protocol="http" bindingInformation=":1623:" />
<binding protocol="http" bindingInformation=":1623:<my pc name>" />
<binding protocol="http" bindingInformation=":1623:192.168.0.174" />
</bindings>
我有IIS 10,我找不到此网站的多个标识
选项,但我在绑定中设置了此选项,但仍然不起作用
<bindings>
<binding protocol="http" bindingInformation=":1623:" />
<binding protocol="http" bindingInformation=":1623:<my pc name>" />
<binding protocol="http" bindingInformation=":1623:192.168.0.174" />
</bindings>