我使用nettcpbinding创建了wcf服务(安全模式=“无”)。在IIS上托管它.. 它在浏览器中运行:
deck::pickCard();
当我使用服务引用使用此服务时,它可以工作。 但是,当我尝试使用渠道工厂消费时,它会给出错误:
这可能是因为合同不匹配(行动不匹配) 发送者和接收者之间)或绑定/安全性不匹配 发件人和收件人。检查发件人和收件人是否有 相同的合同和相同的约束(包括安全要求, 例如消息,传输,无)。
我不明白我的代码中有什么问题。
我的服务网络配置是:
net.tcp://localhost/NetTcptest/Service1.svc/mex
我的测试应用程序代码也是:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<!--All Bindings Information-->
<bindings>
<netTcpBinding>
<binding name="netTcpBindingConfig">
<security mode="None">
<transport clientCredentialType="None" protectionLevel="None"/>
<message clientCredentialType="None" algorithmSuite="Default"/>
</security>
</binding>
</netTcpBinding>
</bindings>
<!--All Service Information-->
<services>
<service name="NetTcpTest.Service1" behaviorConfiguration="netTcpServiceBehavior">
<endpoint address="NetTcpTest"
contract="NetTcpTest.IService1"
binding="netTcpBinding"
bindingConfiguration="netTcpBindingConfig"/>
<endpoint address="mex"
binding="mexTcpBinding"
contract="IMetadataExchange"/>
<host>
<baseAddresses >
<!--<add baseAddress ="http://localhost:8080"/>-->
<add baseAddress ="net.tcp://localhost/Service1.svc"/>
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="netTcpServiceBehavior">
<serviceMetadata httpGetEnabled="false" httpGetUrl=""/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>