为什么我会得到" 503 - 服务不可用"服务可用时出错?

时间:2014-09-11 23:55:24

标签: asp.net-web-api iis-express http-status-code-400 http-status-code-503 applicationhost

根据this,503错误是" 503服务不可用 服务器当前不可用(因为它过载或停机以进行维护)。通常,这是一个临时状态。"

然而,对我来说,情况似乎并非如此。我有一个运行Web API服务器的应用程序,它暴露了一个REST方法。我可以从Fiddler Composer成功调用它(它接收一个文件并将其保存到磁盘),但是只有我使用" localhost" (IP地址不起作用,主机名也不起作用。)

当尝试从我的Windows CE / Compact Framework手持设备(不能使用" localhost"因为那将是自恋和愚蠢)调用该方法时,我可以得到错误400 - 来自的错误请求服务器或503错误,具体取决于我是使用运行Web API应用程序的PC的IP地址还是主机名。

使用我的applicationhost.config文件:

<site name="HHS.Web" id="2">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\project\git\CStore\HHS.Web" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:21608:localhost" />
        <binding protocol="http" bindingInformation="*:21608:192.168.125.50" />
    </bindings>
</site>

...当我尝试使用此URL从手持设备客户端调用HHS.WEB上的REST方法时,我得到错误400 - 错误请求:http://192.168.125.50:21608/api/inventory/sendXML/duckbilled/platypus/bla

使用applicationhost.config文件,如下所示:

<site name="HHS.Web" id="2">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\project\git\CStore\HHS.Web" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:21608:localhost" />
        <binding protocol="http" bindingInformation="*:21608:shannon2" />
    </bindings>
</site>

...和这个uri,使用我的主机名:http://shannon2:21608/api/inventory/sendXML/duckbilled/platypus/bla

......我得到了&#34; 503&#34;错误。服务器正在运行,我可以看到当我更改applicationhost.config中的条目和我调用的URL时;那为什么它告诉我它不可用?

更新

我希望我有一个头脑风暴,并使用&#34; PPP_PEER&#34;指定PC可以解决这个问题,所以我更改了手持设备上的应用程序调用的URL:

http://192.168.125.50:21608/api/inventory/sendXML/duckbilled/platypus/bla

......对此:

http://PPP_PEER:21608/api/inventory/sendXML/duckbilled/platypus/bla

......因为这似乎是掌上电脑必须如何引用PC,但这只会让我回到&#34; 400 - Bad Request&#34;错误消息(并且服务器应用程序中的断点仍未命中)。如果使用&#34; PPP_PEER&#34;是正确的想法,我需要做些什么才能让它发挥作用?

更新2

饼干的关键是在命令提示符下添加:

netsh http add urlacl url=http://shannon2:80/ user=everyone

......或者这个:

netsh http add urlacl url=http://shannon2:8080/ user=everyone

有关详细信息,请参阅更新5 here

0 个答案:

没有答案