ASP.NET MVC 4 サイト (既にパッシブ STS エンドポイントを正常にホストしています) でアクティブ STS エンドポイントをホストしようとしています。何らかの理由で、WCF ランタイムがサービス URI への呼び出しを "処理" していないようです。
私の RouteConfig.cs ファイルには、次のものがあります。
routes.Add(new ServiceRoute("tokens", new MyTokenServiceHostFactory(), typeof(MyTokenServiceConfiguration)));
これは、.svc ファイルを使用せずにサービスをホストする正しい方法だと思います。私のweb.configファイルには、これがあります:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<!--(behaviors etc)-->
<services>
<service name="System.ServiceModel.Security.WSTrustServiceContract">
<endpoint address="" binding="ws2007HttpBinding" contract="System.ServiceModel.Security.IWSTrust13SyncContract"/>
</service>
</services>
</system.serviceModel>
この構成の塊は、サービスを自己ホストするためにうまく使用できます。私が変更したのは、エンドポイントのアドレスだけです。
サービスを呼び出そうとすると、次のようになります。
System.ServiceModel.Security.MessageSecurityException: 相手から、セキュリティで保護されていない、または正しく保護されていない障害を受け取りました。障害コードと詳細については、内部の FaultException を参照してください。---> System.ServiceModel.FaultException: メッセージを処理できませんでした。これは、アクション「http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/Issue」が正しくないか、メッセージに無効または期限切れのセキュリティ コンテキスト トークンが含まれているため、またはバインディング間に不一致があります。
サービス トレースに記録されるのは次のとおりです。
System.ServiceModel.EndpointNotFoundException アクション ' http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/Issue 'を持つメッセージを受け入れることができるチャネルがありませんでした。
ここで私は何を間違えましたか?