Как настроить WCF Net.Tcp - PullRequest
       6

Как настроить WCF Net.Tcp

1 голос
/ 27 января 2011

Я пытаюсь настроить службу wcf для использования net.tcp поверх IIS 7.

Вот ошибка, которую я получаю:

Не было конечной точки прослушивания в сети.tcp: //127.0.0.1: 8000 / ListingService, который может принять сообщение.Это часто вызвано неправильным адресом или действием SOAP.См. InnerException, если таковой имеется, для получения более подробной информации.

Вот код, который я звоню клиенту:

using (var client = new ListingServiceClient("NetTcpBinding"))
{
   client.Test();
   client.Close();
}

Вот мои услуги1013 *

<system.serviceModel>
    <bindings>
      <netTcpBinding>
        <binding portSharingEnabled="true">
          <security mode="None" />
        </binding>
      </netTcpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="default">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
          <!--throttle service-->
          <serviceThrottling
            maxConcurrentCalls="10000"
            maxConcurrentSessions="10000" 
            maxConcurrentInstances="10000" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <services>
      <service behaviorConfiguration="default" name="Housters.Services.ListingService">
        <endpoint name="TcpEndpoint"
                  address="net.tcp://127.0.0.1:8000/ListingService"
                  binding="netTcpBinding"
                  contract="Housters.Services.IListingService" />
      </service>
    </services>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
  <system.webServer>
      <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

А вот мой клиент app.config - http://pastebin.com/YpiAhh46

<system.serviceModel>
    <bindings>
      <netTcpBinding>
        <binding name="NetTcpBinding">
          <security mode="None"/>
        </binding>
      </netTcpBinding>
    </bindings>
    <client>
      <endpoint
              address="net.tcp://127.0.0.1:8000/ListingService"
              binding="netTcpBinding" bindingConfiguration="NetTcpBinding"
              contract="ListingServiceProxy.IListingService" name="NetTcpBinding" />
    </client>
  </system.serviceModel>

Есть идеи?

1 Ответ

7 голосов
/ 28 января 2011

Эта конфигурация не будет работать в IIS / WAS.При размещении в IIS необходим файл .svc (или активация на основе конфигурации в WCF 4), а адрес конечной точки всегда равен VirtualDirectoryPath + SvcFile + Относительный адрес, указанный в конфигурации конечной точки.Настройка абсолютного адреса в конфигурации конечной точки предназначена для самостоятельного хостинга.

...