0

我刚刚在 VS2012 上开发了一个 Web 服务并成功构建。链接如:

http://localhost:55555/eTradingWebservice.asmx

但是当我通过以下方式更改时:

http://127.0.0.1:55555/eTradingWebservice.asmx

-> 它返回 BAD REQUEST - 我的 Google Chrome 上的主机名无效 在机器上是同样的问题(BAD REQUEST)

我检查了我的主机文件,它包含字符串:

127.0.0.1 locahost

我尝试检查 IIS 服务,尝试使用此链接:

http://localhost
http://127.0.0.1

每个都可以。我使用 VS2012 在 IIS8 上部署我的项目

4

1 回答 1

4

问题是由于 IIS Express 没有为您的 Web 服务项目绑定任何 127.0.0.1 并且在 applicationhost.config 文件中只有 localhost 的绑定。您需要添加 127.0.0.1 绑定才能使其正常工作。

该文件位于 [My Documents]\IISExpress\Config 文件夹中,您需要搜索您的项目绑定并添加 127.0.0.1,就像我在我的机器上的示例中所做的那样:

<site name="MVCApp" id="15">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="D:\Projects\MVCApp" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:55555:localhost" />
        <binding protocol="http" bindingInformation="*:55555:127.0.0.1" />
    </bindings>
</site>

您可能还需要使用 netsh 打开它:

netsh http add urlacl url=http://127.0.0.1:55555/  user=everyone 

完成后,您可以使用

netsh http delete urlacl url=http://127.0.0.1:55555/

看看将 IISExpress 用于 localhost 以外的地址!通过“但它可以在我的电脑上运行!”

它建议使用管理权限运行 IISExpress 的最后一步/您可以通过以管理员身份运行 VS 或打开具有管理权限的 PowerShell 提示符并运行命令来执行此操作

C:\Program Files\IIS Express\iisexpress.exe /site:MyWebProject
于 2013-10-06T10:14:37.210 回答