Wcf 双工联合绑定配置不工作

Wcf 双工联合绑定配置不工作,wcf,wcf-data-services,wcf-binding,wcf-security,wcf-client,Wcf,Wcf Data Services,Wcf Binding,Wcf Security,Wcf Client,我正在开发一个双工联合wcf服务,我的联合场景运行良好,但当我试图使其双工到异常时,抛出“传入策略无法验证” <bindings> <customBinding> <binding name='MyServiceBinding'> <security authenticationMode='SecureConversation'> <secureConversat

我正在开发一个双工联合wcf服务,我的联合场景运行良好,但当我试图使其双工到异常时,抛出“传入策略无法验证”

<bindings>
    <customBinding>
        <binding name='MyServiceBinding'>
            <security authenticationMode='SecureConversation'>
                <secureConversationBootstrap authenticationMode='IssuedTokenForCertificate'/>
                <issuedTokenParameters>
                    <issuerMetadata address='http://localhost:62751/TokenIssuer.svc/mex'/>
                </issuedTokenParameters>
            </security>
            <compositeDuplex/>
            <oneWay/>
            <httpTransport/>
        </binding>
    </customBinding>
</bindings>

<services>
    <service name="MyService.MyService"
                       behaviorConfiguration='MyServiceBehavior'>
        <endpoint address="Response"
                              binding="customBinding"
                              bindingConfiguration='MyServiceBinding'
                              contract="MyService.IMyService" />
        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange" />

    </service>
</services>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
我认为我的配置有问题,但仍然无法找出错误

<bindings>
    <customBinding>
        <binding name='MyServiceBinding'>
            <security authenticationMode='SecureConversation'>
                <secureConversationBootstrap authenticationMode='IssuedTokenForCertificate'/>
                <issuedTokenParameters>
                    <issuerMetadata address='http://localhost:62751/TokenIssuer.svc/mex'/>
                </issuedTokenParameters>
            </security>
            <compositeDuplex/>
            <oneWay/>
            <httpTransport/>
        </binding>
    </customBinding>
</bindings>

<services>
    <service name="MyService.MyService"
                       behaviorConfiguration='MyServiceBehavior'>
        <endpoint address="Response"
                              binding="customBinding"
                              bindingConfiguration='MyServiceBinding'
                              contract="MyService.IMyService" />
        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange" />

    </service>
</services>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
以下是我的配置:

<bindings>
    <customBinding>
        <binding name='MyServiceBinding'>
            <security authenticationMode='SecureConversation'>
                <secureConversationBootstrap authenticationMode='IssuedTokenForCertificate'/>
                <issuedTokenParameters>
                    <issuerMetadata address='http://localhost:62751/TokenIssuer.svc/mex'/>
                </issuedTokenParameters>
            </security>
            <compositeDuplex/>
            <oneWay/>
            <httpTransport/>
        </binding>
    </customBinding>
</bindings>

<services>
    <service name="MyService.MyService"
                       behaviorConfiguration='MyServiceBehavior'>
        <endpoint address="Response"
                              binding="customBinding"
                              bindingConfiguration='MyServiceBinding'
                              contract="MyService.IMyService" />
        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange" />

    </service>
</services>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  • 对于我的主要服务:

    <bindings>
        <customBinding>
            <binding name='MyServiceBinding'>
                <security authenticationMode='SecureConversation'>
                    <secureConversationBootstrap authenticationMode='IssuedTokenForCertificate'/>
                    <issuedTokenParameters>
                        <issuerMetadata address='http://localhost:62751/TokenIssuer.svc/mex'/>
                    </issuedTokenParameters>
                </security>
                <compositeDuplex/>
                <oneWay/>
                <httpTransport/>
            </binding>
        </customBinding>
    </bindings>
    
    <services>
        <service name="MyService.MyService"
                           behaviorConfiguration='MyServiceBehavior'>
            <endpoint address="Response"
                                  binding="customBinding"
                                  bindingConfiguration='MyServiceBinding'
                                  contract="MyService.IMyService" />
            <endpoint address="mex"
                      binding="mexHttpBinding"
                      contract="IMetadataExchange" />
    
        </service>
    </services>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
    

    <bindings>
        <customBinding>
            <binding name='MyServiceBinding'>
                <security authenticationMode='SecureConversation'>
                    <secureConversationBootstrap authenticationMode='IssuedTokenForCertificate'/>
                    <issuedTokenParameters>
                        <issuerMetadata address='http://localhost:62751/TokenIssuer.svc/mex'/>
                    </issuedTokenParameters>
                </security>
                <compositeDuplex/>
                <oneWay/>
                <httpTransport/>
            </binding>
        </customBinding>
    </bindings>
    
    <services>
        <service name="MyService.MyService"
                           behaviorConfiguration='MyServiceBehavior'>
            <endpoint address="Response"
                                  binding="customBinding"
                                  bindingConfiguration='MyServiceBinding'
                                  contract="MyService.IMyService" />
            <endpoint address="mex"
                      binding="mexHttpBinding"
                      contract="IMetadataExchange" />
    
        </service>
    </services>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
    
    
    

  • <bindings>
        <customBinding>
            <binding name='MyServiceBinding'>
                <security authenticationMode='SecureConversation'>
                    <secureConversationBootstrap authenticationMode='IssuedTokenForCertificate'/>
                    <issuedTokenParameters>
                        <issuerMetadata address='http://localhost:62751/TokenIssuer.svc/mex'/>
                    </issuedTokenParameters>
                </security>
                <compositeDuplex/>
                <oneWay/>
                <httpTransport/>
            </binding>
        </customBinding>
    </bindings>
    
    <services>
        <service name="MyService.MyService"
                           behaviorConfiguration='MyServiceBehavior'>
            <endpoint address="Response"
                                  binding="customBinding"
                                  bindingConfiguration='MyServiceBinding'
                                  contract="MyService.IMyService" />
            <endpoint address="mex"
                      binding="mexHttpBinding"
                      contract="IMetadataExchange" />
    
        </service>
    </services>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
    
  • STS配置

    <bindings>
        <customBinding>
            <binding name='MyServiceBinding'>
                <security authenticationMode='SecureConversation'>
                    <secureConversationBootstrap authenticationMode='IssuedTokenForCertificate'/>
                    <issuedTokenParameters>
                        <issuerMetadata address='http://localhost:62751/TokenIssuer.svc/mex'/>
                    </issuedTokenParameters>
                </security>
                <compositeDuplex/>
                <oneWay/>
                <httpTransport/>
            </binding>
        </customBinding>
    </bindings>
    
    <services>
        <service name="MyService.MyService"
                           behaviorConfiguration='MyServiceBehavior'>
            <endpoint address="Response"
                                  binding="customBinding"
                                  bindingConfiguration='MyServiceBinding'
                                  contract="MyService.IMyService" />
            <endpoint address="mex"
                      binding="mexHttpBinding"
                      contract="IMetadataExchange" />
    
        </service>
    </services>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
    

  • <bindings>
        <customBinding>
            <binding name='MyServiceBinding'>
                <security authenticationMode='SecureConversation'>
                    <secureConversationBootstrap authenticationMode='IssuedTokenForCertificate'/>
                    <issuedTokenParameters>
                        <issuerMetadata address='http://localhost:62751/TokenIssuer.svc/mex'/>
                    </issuedTokenParameters>
                </security>
                <compositeDuplex/>
                <oneWay/>
                <httpTransport/>
            </binding>
        </customBinding>
    </bindings>
    
    <services>
        <service name="MyService.MyService"
                           behaviorConfiguration='MyServiceBehavior'>
            <endpoint address="Response"
                                  binding="customBinding"
                                  bindingConfiguration='MyServiceBinding'
                                  contract="MyService.IMyService" />
            <endpoint address="mex"
                      binding="mexHttpBinding"
                      contract="IMetadataExchange" />
    
        </service>
    </services>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
    
    三,。客户端配置

    <bindings>
        <customBinding>
            <binding name='MyServiceBinding'>
                <security authenticationMode='SecureConversation'>
                    <secureConversationBootstrap authenticationMode='IssuedTokenForCertificate'/>
                    <issuedTokenParameters>
                        <issuerMetadata address='http://localhost:62751/TokenIssuer.svc/mex'/>
                    </issuedTokenParameters>
                </security>
                <compositeDuplex/>
                <oneWay/>
                <httpTransport/>
            </binding>
        </customBinding>
    </bindings>
    
    <services>
        <service name="MyService.MyService"
                           behaviorConfiguration='MyServiceBehavior'>
            <endpoint address="Response"
                                  binding="customBinding"
                                  bindingConfiguration='MyServiceBinding'
                                  contract="MyService.IMyService" />
            <endpoint address="mex"
                      binding="mexHttpBinding"
                      contract="IMetadataExchange" />
    
        </service>
    </services>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
    
    <system.serviceModel>
        <bindings>
            <customBinding>
                    <binding name='MyServiceBinding'>
                        <security authenticationMode='SecureConversation'>
                            <secureConversationBootstrap authenticationMode='IssuedTokenForCertificate'/>
                            <issuedTokenParameters>
                                <issuer address='http://localhost:62751/TokenIssuer.svc' binding='wsHttpBinding' bindingConfiguration='MyTokenIssuer'/>
                            </issuedTokenParameters>
                        </security>
                        <compositeDuplex/>
                        <oneWay/>
                        <httpTransport/>
                    </binding>
    
            </customBinding>
    
            <wsHttpBinding>
                <binding name="MyTokenIssuer">
                    <security mode="Message"/>
                </binding>
            </wsHttpBinding>
    
        </bindings>
    
        <behaviors>
            <endpointBehaviors>
                <behavior name="GetResponseClientBehavior">
                    <clientCredentials>
                        <serviceCertificate>
                            <authentication certificateValidationMode="PeerOrChainTrust"/>
                        </serviceCertificate>
                    </clientCredentials>
                </behavior>
            </endpointBehaviors>
        </behaviors>
    
        <client>
            <endpoint name="WSFederationHttpBinding_IMyService" address="http://localhost:53121/MyService.svc/Response" binding="customBinding" bindingConfiguration="MyServiceBinding" behaviorConfiguration="GetResponseClientBehavior" contract="IMyService">
                <identity>
                    <certificateReference storeLocation="CurrentUser" storeName="TrustedPeople" x509FindType="FindBySubjectName" findValue="BookStoreService.com"/>
                </identity>
            </endpoint>
        </client>        
    </system.serviceModel>