如何在ASP.NET MVC 4中托管活动的STS?

时间:2013-04-23 17:31:01

标签: wcf asp.net-mvc-4 wif sts-securitytokenservice

我正在尝试在我的ASP.NET MVC 4站点(已成功托管被动STS端点)中托管活动的STS端点。出于某种原因,WCF运行时似乎没有“处理”对我的servive 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以获取故障代码和详细信息。 ---&GT; 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”接受消息的频道。

我在这里做错了什么?