我们可以有一个服务实现多个serviceContract。每个servicecontract都显示为具有相同地址的单独端点

时间:2013-12-19 11:59:28

标签: wcf

我遇到的问题是,相同的配置在我的开发机器上工作,但不能在其他机器上工作。 我有四个servicecontract接口。这些接口由单一服务实现。对于每个服务合同,我有单独的端点,但这些端点具有相同的地址。此设置适用于我的机器,但在测试机器上失败。 请澄清。

这是配置文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
  <service name="ABC.Toolkit.PluginHost.AdapterService">
    <endpoint address="AdapterService" bindingConfiguration="DicomConfigNamedPipeBinding"
      binding="netNamedPipeBinding" contract="ABC.ILocalSystemStore">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
    <endpoint address="AdapterService" bindingConfiguration="DicomConfigNamedPipeBinding"
          binding="netNamedPipeBinding" contract="ABC.IRemoteDeviceStore">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
    <endpoint address="AdapterService" bindingConfiguration="DicomConfigNamedPipeBinding"
          binding="netNamedPipeBinding" contract="ABC.IPrinterStore">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
    <endpoint address="AdapterService" bindingConfiguration="DicomConfigNamedPipeBinding"
          binding="netNamedPipeBinding" contract="ABC.ITemplateStore">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
    <host>
      <baseAddresses>
        <add baseAddress="net.tcp://localhost:8000/Services/" />
        <add baseAddress="net.pipe://localhost/Services" />
      </baseAddresses>
    </host>
  </service>
  <service name="ABC.RemoteDeviceTestService">
    <endpoint address="net.pipe://localhost/Services/RemoteDeviceTestService" bindingConfiguration="DicomConfigNamedPipeBinding"
            binding="netNamedPipeBinding" contract="ABC.IRemoteDeviceTest">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
    <host>
      <baseAddresses>
        <add baseAddress="net.tcp://localhost:8000/Services/" />
        <add baseAddress="net.pipe://localhost/Services" />
      </baseAddresses>
    </host>
  </service>
  <service name="ABC.PrinterTestService">
    <endpoint address="net.pipe://localhost/Services/PrinterTestService" bindingConfiguration="DicomConfigNamedPipeBinding"
           binding="netNamedPipeBinding" contract="ABC.IPrinterTest">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
    <host>
      <baseAddresses>
        <add baseAddress="net.tcp://localhost:8000/Services/" />
        <add baseAddress="net.pipe://localhost/Services" />
      </baseAddresses>
    </host>
  </service>      
</services>
<bindings>
  <netTcpBinding>
    <binding name="NetTcp_Reliable" sendTimeout="00:00:10"
             receiveTimeout="24.20:31:23.6470000">
      <reliableSession ordered="true" inactivityTimeout="24.20:31:23.6470000"
          enabled="true" />
    </binding>
  </netTcpBinding>
  <netNamedPipeBinding>
    <binding name="DicomConfigNamedPipeBinding"  closeTimeout="23:59:59" openTimeout="23:59:59" receiveTimeout="23:59:59"
             sendTimeout="23:59:59" transactionFlow="false" transferMode="Buffered" maxBufferPoolSize="2147483646" maxBufferSize="2147483646"
             maxConnections="10" maxReceivedMessageSize="2147483646">
      <readerQuotas maxDepth="64" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
      <security mode="Transport" />
    </binding>
  </netNamedPipeBinding>
</bindings>
<behaviors>
  <serviceBehaviors>
    <behavior name="serviceBehave">
      <!-- To avoid disclosing metadata information, 
      set the value below to false and remove the metadata endpoint above before deployment -->
      <serviceMetadata httpGetEnabled="false"/>
      <!-- To receive exception details in faults for debugging purposes, 
      set the value below to true.  Set to false before deployment 
      to avoid disclosing exception information -->
      <serviceDebug includeExceptionDetailInFaults="false" />
    </behavior>
  </serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>

我得到的错误消息是Endpoint调度程序的合同过滤器不匹配

0 个答案:

没有答案