2011-01-26 4 views
1

Я не имею тестируя никаких особенностей конфигурации WCF 4.WCF 4 и NetTcpBinding

Я построил простую службу и развертывание его в IIS. Служба развертывается в виде файла SVC

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

<configuration> 
    <system.serviceModel> 
     <bindings /> 
     <client /> 
    </system.serviceModel> 
</configuration> 

конфигурации на веб-сервере:

<system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
</system.web> 
<system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior> 
      <serviceMetadata httpGetEnabled="true"/> 
      <serviceDebug includeExceptionDetailInFaults="false"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
</system.serviceModel> 
<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
</system.webServer> 

Этот код работает отлично:

BasicHttpBinding myBinding = new BasicHttpBinding(); 
EndpointAddress myEndpoint = new EndpointAddress("http://localhost/Service1.svc"); 
ChannelFactory<IService1> myChannelFactory = new ChannelFactory<IService1>(myBinding, myEndpoint); 
IService1 wcfClient1 = myChannelFactory.CreateChannel(); 
int z = wcfClient1.Multiply(composite); 

Этот код не содержит:

NetTcpBinding myBinding = new NetTcpBinding(); 
EndpointAddress myEndpoint = new EndpointAddress("net.tcp://localhost:808/Service1.svc"); 
ChannelFactory<IService1> myChannelFactory = new ChannelFactory<IService1>(myBinding, myEndpoint); 
IService1 wcfClient1 = myChannelFactory.CreateChannel(); 
int z = wcfClient1.Multiply(composite); 

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

Не удалось подключиться к net.tcp: //localhost/Service1.svc. Ошибка подключения продолжалась некоторое время span 00: 00: 02.1041204. Ошибка TCP код 10061: соединение не может быть сделано, потому что целевая машина активно отказывается от нее 127.0.0.1:808.

Ссылка net.tcp установлена ​​на веб-сайте по умолчанию.

У меня такое ощущение, что есть что-то простое, что мне не хватает. У кого-нибудь есть идеи?

ответ

4

Обнаружена проблема. Хотя net.tcp выглядел так, как будто он был установлен для веб-сайта по умолчанию, его необходимо активировать, используя следующую команду:

appcmd.exe set app "Default Web Site/" /enabledProtocols:http,net.tcp 
+0

Вы также можете щелкнуть правой кнопкой мыши по IIS> Веб-сайт по умолчанию и нажать «Дополнительные настройки». Вы увидите последнюю опцию «Enabled Protocols», и вы можете добавить net.tcp. – Donny

6

У меня такое ощущение, что ваш Net.Tcp Port Sharing Service не включен.

+0

Спасибо, он был отключен, я включил и запустил его. Я также сделал то же самое для адаптера Net Tcp Listener, но я все равно получаю ту же ошибку –

+0

Является ли эта услуга фактором при размещении в IIS? Я так не думал, но мог ошибаться. – Brook

+0

@Shiraz, @Brook - К сожалению, я могу иметь ограниченную помощь в этом вопросе, поскольку у меня никогда не было службы WCF TCP в IIS. Специфика вашей проблемы просто показалась мне знакомой с проблемами, которые у меня были с хостингом в обычной службе Windows. – ChaosPandion

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