Хост сервис WCF в WAS - PullRequest
       80

Хост сервис WCF в WAS

1 голос
/ 05 декабря 2011

Мне нужна помощь с размещением службы WCF в WAS.Я разместил службу нормально в IIS и получил доступ через привязку basicHttp и wsHttp.Но кажется, что я что-то упускаю при попытке разместить его в WAS и получить доступ через tcp / ip.

Мне нужно настроить его для доступа через tcp через порт 10000.

Я включил активацию WCF дляНе HTTP в Windows Особенности

Сервис публикуется на веб-сайте по умолчанию, приложение mywcfapp

Я создал BAT-файл для включения привязки net.tcp через порт 10000 на веб-сайте по умолчанию и mywcfapp asниже:

%windir%\system32\inetsrv\appcmd.exe set site "Default Web Site" -+bindings.[protocol='net.tcp',bindingInformation='10000:*']
%windir%\system32\inetsrv\appcmd.exe set app "Default Web Site/mywcfapp" /enabledProtocols:http,net.tcp

web.config

<services>
  <service name="MyWcfService">
    <clear />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"
      listenUriMode="Explicit" />

    <endpoint address="net.tcp://localhost:10000/mywcfapp/mywcfapp.svc"
      binding="netTcpBinding" bindingConfiguration="PortSharingBinding" contract="MyApp.IService" />
    <endpoint address="net.tcp://localhost:10000/mywcfapp/mywcfapp.svc"
      binding="netTcpBinding" bindingConfiguration="PortSharingBinding" contract="MyApp.IService" />

  </service>
</services>

<bindings>
  <netTcpBinding>
    <binding name="PortSharingBinding" portSharingEnabled="true">
      <security mode="None" />
    </binding>
  </netTcpBinding>
</bindings>

Однако, похоже, я не могу получить доступ к службе.

Когда я пытаюсь получить доступ к службе с помощью WcfTestClientс uri

net.tcp://localhost:10000/mywcfapp/mywcfapp.svc/mex

я получаю следующую ошибку

<Fault xmlns="http://www.w3.org/2003/05/soap-envelope">
<Code>
    <Value>Sender</Value>
    <Subcode><Value xmlns:a="http://www.w3.org/2005/08/addressing">a:DestinationUnreachable</Value>
    </Subcode>
</Code>
<Reason><Text xml:lang="ro-RO">
    The message with To 'net.tcp://localhost:10000/mywcfapp/mywcfapp.svc/mex' 
    cannot be processed at the receiver, due to an AddressFilter mismatch 
    at the EndpointDispatcher.  
    Check that the sender and receiver's EndpointAddresses agree.
</Text></Reason>
</Fault>

Если я пытаюсь подключиться с помощью URL (без указания порта)

net.tcp://localhost/OneTest.Service/OneTest.Service.svc/mex

Iполучить ошибку (сохранилась только значительная часть)

Could not connect to net.tcp://localhost/mywcfapp/mywcfapp.svc/mex. 
The connection attempt lasted for a time span of 00:00:02.0041146. 
TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:808.     
No connection could be made because the target machine actively refused it 127.0.0.1:808

1 Ответ

3 голосов
/ 05 декабря 2011

Это может помочь:

Перейти к диспетчеру IIS. Щелкните правой кнопкой мыши на приложении. Выберите «Управление приложениями» -> «Дополнительные настройки». Под Поведением есть поле для Включенных протоколов.

Убедитесь, что он имеет net.tcp

Если у него просто http, измените его на

http,net.tcp
...