複数のマシンにインストールされている既存の Web アプリケーションがあります。スクリプト クライアントと .net クライアントは、すべての呼び出しを他のマシンにルーティングする 1 つのマシンを介して ".asmx" サービスを利用します。
クライアント ----> |Web サイト \ 仮想ディレクトリ(HttpHandler)| ----> |他サーバー\実.asmx|
同じ機能を実行する新しい .svc サービスを追加し、そのハンドラーを追加しました (ディレクトリの構成):
<system.webServer>
<handlers>
<add name="MY_ASMX" verb="*" path="*.asmx" type="MY.AO.HttpProxy, Astea.AO.HttpProxy" resourceType="Unspecified" preCondition="integratedMode" />
<add name="MY_ASPX" verb="*" path="*.aspx" type="MY.AO.HttpProxy, Astea.AO.HttpProxy" resourceType="Unspecified" preCondition="integratedMode" />
<add name="MY_WSDL" verb="*" path="*.wsdl" type="MY.AO.HttpProxy, Astea.AO.HttpProxy" resourceType="Unspecified" preCondition="integratedMode" />
<add name="MY_SVC" verb="*" path="*.svc" type="MY.AO.HttpProxy, Astea.AO.HttpProxy" resourceType="Unspecified" preCondition="integratedMode" />
asmx リクエストは正常にルーティングされますが、エンド サーバー上の新しい .svc は呼び出されず、Httphandler もスキップされます。他のマシンで .svc を直接呼び出すと、動作します。
私が得るエラーは次のとおりです。
WebHost failed to process a request.
Sender Information: System.ServiceModel.Activation.HostedHttpRequestAsyncResult/26458746
Exception: System.Web.HttpException (0x80004005): The service '/Mysite/MyDirectory/settings.svc' does not exist. ---> System.ServiceModel.EndpointNotFoundException: The service '/Mysite/MyDirectory/settings.svc' does not exist.
私はすでに以下を試しました
- .svc を削除するコンパイル セクションに「buildProviders」を追加します。
- MimeTypes をクリックし、「.svc」と「application/octet-stream」を入力して保存します。
- ハンドラを追加します:
何も役に立たない、http ハンドラが呼び出されていない
ps私はAppPool .net 4.0 Integratedで作業しています