0

我试图在我的 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 ”的消息。

我在这里做错了什么?

4