根据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;是正确的想法,我需要做些什么才能让它发挥作用?
饼干的关键是在命令提示符下添加:
netsh http add urlacl url=http://shannon2:80/ user=everyone
......或者这个:
netsh http add urlacl url=http://shannon2:8080/ user=everyone
有关详细信息,请参阅更新5 here