4

このによると、503エラーは「503 Service Unavailable The server is currently available (because it is overloaded or down for maintenance.) 通常、これは一時的な状態です。」

しかし、それは私には当てはまらないようです。REST メソッドを公開する Web API サーバー アプリを実行しています。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 - Bad Request」エラー メッセージに戻るだけです (サーバー アプリのブレークポイントはまだヒットしていません)。「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