2012-06-28 3 views
0

У меня есть служба с двумя контрактами, которые я хочу использовать с привязкой tcp. Файлы конфигурации службы заключается в следующем:wcf tcp: error 10061

<system.serviceModel> 
    <bindings> 
     <netTcpBinding> 
     <binding name="ServiceDocumentos" transferMode="Streamed" 
       maxBufferSize="67108864" 
         maxReceivedMessageSize="67108864" maxBufferPoolSize="67108864" 
        closeTimeout="00:00:10" 
         openTimeout="00:00:10" receiveTimeout="00:20:00" 
         sendTimeout="00:01:00" maxConnections="100"/> 
     <binding name="ServiceCore" transferMode="Buffered" 
       maxBufferSize="67108864" 
         maxReceivedMessageSize="67108864" maxBufferPoolSize="67108864" 
        closeTimeout="00:00:10" 
         openTimeout="00:00:10" receiveTimeout="00:20:00" 
         sendTimeout="00:01:00" maxConnections="100"/> 
     </netTcpBinding> 

     <basicHttpBinding> 
     <binding name="ServiceDocumentos" messageEncoding="Mtom" transferMode="Streamed" /> 
     <binding name="ServiceCore" messageEncoding="Mtom" transferMode="Buffered" /> 
     </basicHttpBinding> 

     <wsDualHttpBinding> 
     <binding name="ServiceDocumentos" messageEncoding="Mtom"/> 
     <binding name="ServiceCore" messageEncoding="Mtom"/> 
     </wsDualHttpBinding> 
    </bindings> 

    <services> 
     <service behaviorConfiguration="CMMSService" name="GTS.CMMS.Service.Service"> 
     <endpoint binding="netTcpBinding" bindingConfiguration="ServiceDocumentos" 
       name="ServiceDocumentos" contract="GTS.CMMS.Service.IServiceDocumentos" 
     address="ServiceDocumentos/"> 
      <identity> 
      <dns value="localhost" /> 
      </identity> 
     </endpoint> 

     <endpoint address ="net.tcp://localhost:6000/CMMSService/ServiceCore/" 
       binding="netTcpBinding" bindingConfiguration="ServiceCore" 
       name="ServiceCore" contract="GTS.CMMS.Service.IService"> 
      <identity> 
      <dns value="localhost" /> 
      </identity> 
     </endpoint> 

     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" 
       listenUriMode="Explicit"> 
     </endpoint> 

     <host> 
      <baseAddresses> 
      <add baseAddress="http://localhost:8500/CMMSService" /> 
      <add baseAddress="net.tcp://localhost:8501/CMMSService" /> 
      </baseAddresses> 
     </host> 


     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="CMMSService"> 
      <serviceMetadata httpGetEnabled="True"/> 
      <serviceDebug includeExceptionDetailInFaults="True" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    </system.serviceModel> 

и файл конфигурации клиента:

<system.serviceModel> 
    <bindings> 
     <netTcpBinding> 
     <binding name="ServiceDocumentos" closeTimeout="00:01:00" openTimeout="00:01:00" 
     receiveTimeout="00:10:00" sendTimeout="00:01:00" hostNameComparisonMode="StrongWildcard" 
     maxBufferSize="3670016" maxBufferPoolSize="524288" maxReceivedMessageSize="3670016" 
     transferMode="Streamed"> 
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="65536" 
      maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
     </binding> 
     <binding name="ServiceCore" closeTimeout="00:01:00" openTimeout="00:01:00" 
     receiveTimeout="00:10:00" sendTimeout="00:01:00" hostNameComparisonMode="StrongWildcard" 
     maxBufferSize="2097152" maxBufferPoolSize="524288" maxReceivedMessageSize="2097152" 
     transferMode="Buffered"> 
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="65536" 
      maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
      <security mode="None"> 
      <transport clientCredentialType="None" /> 
      <message clientCredentialType="UserName" algorithmSuite="Default" /> 
      </security> 
     </binding> 
     </netTcpBinding> 

     <basicHttpBinding> 
     <binding name="ServiceDocumentos" closeTimeout="00:01:00" openTimeout="00:01:00" 
     receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" 
     bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" 
     maxBufferSize="3670016" maxBufferPoolSize="524288" maxReceivedMessageSize="3670016" 
     messageEncoding="Mtom" textEncoding="utf-8" transferMode="Streamed" 
     useDefaultWebProxy="true"> 
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="65536" 
      maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
     </binding> 
     <binding name="ServiceCore" closeTimeout="00:01:00" openTimeout="00:01:00" 
     receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" 
     bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" 
     maxBufferSize="2097152" maxBufferPoolSize="524288" maxReceivedMessageSize="2097152" 
     messageEncoding="Mtom" textEncoding="utf-8" transferMode="Buffered" 
     useDefaultWebProxy="true"> 
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="65536" 
      maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
      <security mode="None"> 
      <transport clientCredentialType="None" proxyCredentialType="None" 
      realm="" /> 
      <message clientCredentialType="UserName" algorithmSuite="Default" /> 
      </security> 
     </binding> 
     </basicHttpBinding> 

     <wsDualHttpBinding> 
     <binding name="ServiceDocumentos" messageEncoding="Mtom"/> 
     <binding name="ServiceCore" messageEncoding="Mtom"/> 
     </wsDualHttpBinding> 
    </bindings> 

    <client> 
     <!--<endpoint address="net.tcp://localhost:8501/CMMSService/ServiceDocumentos/" 
     binding="netTcpBinding" bindingConfiguration="ServiceDocumentos" 
     contract="IServiceDocumentos" name="ServiceDocumentos" /> 
     <endpoint address="net.tcp://localhost:8501/CMMSService/ServiceCore/" 
     binding="netTcpBinding" bindingConfiguration="ServiceCore" 
     contract="IService" name="ServiceCore" />--> 

     <endpoint address="net.tcp://localhost:8501/CMMSService/ServiceDocumentos/" 
     binding="netTcpBinding" bindingConfiguration="ServiceDocumentos" 
     contract="IServiceDocumentos" name="ServiceDocumentos" /> 
     <endpoint address="net.tcp://localhost:6000/CMMSService/ServiceCore/" 
     binding="netTcpBinding" bindingConfiguration="ServiceCore" 
     contract="IService" name="ServiceCore" /> 
    </client> 
    </system.serviceModel> 

Я делаю тест с различными креплениями. Например, если для одного контракта IServiceDocumentos я использую tcp и для другого контракта, основной контракт, который я использую wsDualHttpBinding, все работает нормально. Я могу использовать два контракта.

Если я использую TCP для двух контрактов, то я получаю сообщение об ошибке TCP 10061.

Я стараюсь использовать индивидуальный полный адрес для каждого контракта, потому что я предполагаю, что проблема может быть использование одного и того же порт, но проблема сохраняется. Однако, если я использую полный индивидуальный адрес для каждой конечной точки, это работает, если я использую разные привязки.

Также я пытаюсь запустить службу обмена портом tcp службы (служба в Windows XP), и проблема не решена.

Я пытаюсь отключить брандмауэр, но это не решит проблему.

Спасибо.

EDIT:

Я использую follwing команду, когда у меня есть ход службы:

netstat -ona || find "6000" 

я получаю следующую информацию:

TCP 0.0.0.0:6000 0.0.0.0 сЛушАНИЕ 2690

Так что я думаю, что por открыт и слушает.

+0

Ошибка '10061' -« Соединение отказано »(' WSAECONNREFUSED'). Это означает, что компьютер, к которому вы пытаетесь подключиться, не прослушивает. Приложение работает на этом компьютере? –

ответ

2

Я думаю, что вы определили своих адресатов своих конечных точек обслуживания неправильным образом. Вам не нужно использовать другой порт для каждого адреса tcp, пока вы разрешаете совместное использование портов. Это достигается с помощью службы обмена портами Net.TCP, которая доступна для любой установки .NET 3.0. По умолчанию служба не включена, поэтому вы должны включить ее самостоятельно. Связано с тем, как включить службу Net.TCP POrt Sharing Service, проверьте следующую ссылку: http://msdn.microsoft.com/en-us/library/ms733925.aspx.

+1

Я тестирую его при запуске службы, но у меня такая же ошибка, поэтому я думаю, что проблема заключается не в совместном использовании порта tcp. Я добавляю некоторую информацию в исходное сообщение. –

Смежные вопросы