2013-03-05 4 views
0

среды разработки:ФОС NetTcpBinding Существующее соединение было принудительно закрыто удаленным узлом

службы размещаются под IIS/WAS

У меня есть четыре службы, разработанные на моем местном развитии. Все четыре из них работают нормально, когда я обращаюсь к ним из приложения asp.net. Я использую протокол net.tcp для подключения. Я указал net.tcp как разрешенный протокол на уровне сайта и на уровне виртуального каталога. Все три службы, связанные с tcp, запускаются.

В приложении web.config, из которого я могу подключиться к услугам, я использую олицетворение

Но когда я пытаюсь подключиться к услугам, указав net.tcp URL в Add службе проект wcftestclient. Я не могу подключиться. С той же конфигурацией для двух других сервисов я могу подключиться к этим двум другим сервисам.

Test Server: Я даже развернулся на тестовом сервере. Даже там я столкнулся с такой же проблемой. Я могу подключиться к тем же двум сервисам, используя net.tcp url. Но другие два дают ошибку. Ниже приведена одна из этих конфигураций. на сервере я даже удалял разрешенные части пользователей, чтобы они запускались для всех пользователей.

Ошибка Я получаю следующее.

Ошибка: невозможно получить метаданные из net.tcp: //localhost/servicesdev/SalesPersonService.svc. Если это служба Windows (R) Communication Foundation, к которой у вас есть доступ, убедитесь, что вы включили публикацию метаданных на указанный адрес. Для получения справки, включающей публикацию метаданных, обратитесь к документации MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata URI ошибки обмена: net.tcp: //localhost/servicesdev/SalesPersonService.svc Метаданные содержат ссылку, которая не может быть разрешена: 'net.tcp: // localhost/servicesdev /SalesPersonService.svc. Соединение сокета было прервано. Это может быть вызвано ошибкой обработки вашего сообщения или превышением времени приема удаленным хостом или проблемой сетевого ресурса. Локальный тайм-аут гнезда был «00: 05: 00». Существующее соединение было принудительно закрыто удаленным хостом

Ниже приведен раздел конфигурации.

<services> 
    <service behaviorConfiguration="ServiceBehavior" name="WCFServiceLibrary.SalesPersonService"> 
     <endpoint address="" binding="wsHttpBinding" contract="WCFServiceLibrary.ISalesPersonService" /> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
     <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" /> 
     <endpoint address="basic" binding="basicHttpBinding" contract="WCFServiceLibrary.ISalesPersonService" /> 
     <endpoint address="net.tcp://localhost/servicesdev/SalesPersonService.svc" binding="netTcpBinding" contract="WCFServiceLibrary.ISalesPersonService" listenUriMode="Explicit" /> 
     </service> 
    </services> 

<behaviors> 
     <serviceBehaviors> 
      <behavior name="ServiceBehavior"> 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="false" /> 
      </behavior> 
     </serviceBehaviors> 
    </behaviors> 


<system.web> 
    <compilation targetFramework="4.0" debug="true" /> 
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" /> 
     <identity impersonate="true" /> 
     <authorization> 
      <allow users="myuser" /> 
     </authorization> 
    </system.web> 

Спасибо, BMP

ответ

0

Вы определяете относительный адрес для MEX, не давая базовый адрес. Попробуйте указать базовый адрес, как показано в примере ниже. относительный адрес для mex должен работать тогда

  <host> 
       <baseAddresses> 
       <add baseAddress="net.tcp://localhost/servicesdev/SalesPersonService.svc"/> 
       </baseAddresses> 
      </host> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
      <endpoint address="" binding="wsHttpBinding" contract="WcfServiceLibrary1.ISalesPersonService" /> 
      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
      <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" /> 
      <endpoint address="basic" binding="basicHttpBinding" contract="WcfServiceLibrary1.ISalesPersonService" /> 
      <endpoint address="" binding="netTcpBinding" contract="WcfServiceLibrary1.ISalesPersonService" /> 
Смежные вопросы