私は、WCFサービスとHttpHandlerをホストするWebサイトを持っています。 aspNetCompatibilityEnabledをオンにすると、HttpHandlerがWCFリクエストを取得し始めます。私はこれが.svc拡張を持っていて、ハンドラが.svcファイルを扱うように設定されていないので、これが起こるとは思わないでしょう。ハンドラはとてもとして登録されていますHttpHandlerがWCFリクエストを処理しないようにする
<system.webServer>
<handlers>
<add name="TTPDeploy" path="*.deploy" verb="*" type="ServiceHost.DeploymentHandler" resourceType="Unspecified" preCondition="integratedMode" />
<add name="TTPManifest" path="*.manifest" verb="*" type="ServiceHost.DeploymentHandler" resourceType="Unspecified" preCondition="integratedMode" />
<add name="TTPApplication" path="*.application" verb="*" type="ServiceHost.DeploymentHandler" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode" />
</handlers>
</system.webServer>
私はWCFとのhttpHandlersについて何かを理解していないので、これは単純であると確信しています。思考?
更新
私は別の方法で問題を解決することになりました。 aspNetCompatibilityEnabledをtrueに設定している間、私のWCFリクエストを取得できないため、私はfalseに戻しました。
私の中核的な問題は、Webへの物理ファイルパスをWCF呼び出しから取得する必要があることでした。 WCFを使用して物理的なアプリケーションパスを取得するときに述べた別の投稿(私は今見つけることができません)を見つけたので、HostingEnvironment.ApplicationPhysicalPath
を使用してください。これは、問題に対するはるかに単純なアプローチですが、まだこの質問に答えていません。
なぜ私のハンドラは.svcファイルに登録されていないときにWCF要求を受け取りますか?
セルフホストのWindowsアプリ/ NTサービスであなたのWCFサービスを:
web.configファイルに以下を追加し、要求があなたのハンドラに取得できるようにするにはこれらの問題...... –
残念ながら、これはオプションではありません。なぜなら、IISが(柔軟性に関連するいくつかの問題はありますが)IISが私に提供する柔軟性/構成可能性が必要だからです。 –
セルフホスティングの際には、どのような柔軟性がありませんか? –