4

据此 503错误为“503 Service Unavailable 服务器当前不可用(因为超载或停机维护)。一般这是暂时的状态。”

然而,对我来说似乎并非如此。我有一个 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 方法时,我得到 err 400 - Bad Request: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

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

更新

我希望我有一个头脑风暴,并且使用“PPP_PEER”来指定 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 的方式,但这只会让我回到“400 - 错误请求”错误消息(并且服务器应用程序中的断点仍未命中)。如果使用“PPP_PEER”是正确的想法,我还需要什么让它工作?

更新 2

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

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

...或这个:

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

有关详细信息,请参阅此处的更新 5

4

0 回答 0