Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Распределённые приложения и сеть > Конфигурация WCF-сервиса для TCP


Автор: cha0ss 24.9.2009, 09:51
Здравствуйте, решил переделать конфиг клиент-серверного приложения для протокола TCP.

Ниже приведены конфиги для клиента и сервера.

Сервер
Код

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    
    <services>
      <service name="InMetaExServer.Services.BD">
        <endpoint address="net.tcp://komp2:6666/BDService"
                  contract="InMetaExServer.Services.IBD" binding="netTcpBinding">
        </endpoint>
      </service>
    </services>

  </system.serviceModel>
</configuration>


Клиент
Код

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>
        <bindings>
            <netTcpBinding>
                <binding name="netTcpBinding_IBD" closeTimeout="00:01:00" openTimeout="00:01:00"
                    receiveTimeout="00:10:00" sendTimeout="00:01:00"
                    transactionFlow="false" hostNameComparisonMode="StrongWildcard"
                    maxBufferPoolSize="524288" maxReceivedMessageSize="536870912">
                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                    <reliableSession ordered="true" inactivityTimeout="00:10:00"
                        enabled="false" />
                    <security mode="Message">
                        <transport clientCredentialType="Windows"/>
                        <message clientCredentialType="Windows" algorithmSuite="Default" />
                    </security>
                </binding>
            </netTcpBinding>
        </bindings>
        <client>
            <endpoint address="net.tcp://komp2:6666/BDService" binding="netTcpBinding"
                bindingConfiguration="netTcpBinding_IBD" contract="BDConfig.IBD"
                name="netTcpBinding_IBD">
                <identity>
                    <userPrincipalName value="komp2\username" />
                </identity>
            </endpoint>
        </client>
    </system.serviceModel>
</configuration>


Сервер запускается без ошибок.
При коннекте к сервису на клиенте вылетает следующая ошибка:
Подключение к сокету было прервано. Возможно, это вызвано ошибкой обработки сообщения, превышением времени ожидания на удаленном узле или проблемой с выделенным сетевым ресурсом. Тайм-аут локального сокета: "00:00:59.6875000"

Что делаю неправильно?

Автор: cha0ss 24.9.2009, 13:26
Вопрос решен.

Необходимо было в конфиге сервера дописать host.
Итоговый конфиг для сервера получился следующим:

Код

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    
    <services>
      <service name="InMetaExServer.Services.BD">
        <host>
          <baseAddresses>
            <add baseAddress="net.tcp://komp2:6666/BDService/"/>
          </baseAddresses>
        </host>
        <endpoint address="net.tcp://komp2:6666/BDService"
                  contract="InMetaExServer.Services.IBD" binding="netTcpBinding">
        </endpoint>
      </service>
    </services>

  </system.serviceModel>
</configuration>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)