Как настроить веб-роль службы Windows Azure WCF для работы с netTcpBinding? - PullRequest
5 голосов
/ 27 февраля 2012

У меня есть служба WCF, размещенная в Windows Azure, и я недавно изменил ее контракт на двухсторонний контракт (для поддержки индикатора выполнения на клиенте). Сначала я использовал wsDualHttpBinding, который хорошо работал на моем локальном компьютере, но, как и ожидалось, не сработал после его развертывания.

Сейчас я пытаюсь настроить службу для работы с netTcpBinding, но получаю сообщение об ошибке «Указанный протокол недействителен. Протокол tcp для привязки с именем« Endpoint1 »в настоящее время не поддерживается».

ServiceDefinition.csdef:

<Endpoints>
  <InputEndpoint name="AlertsEndpoint" protocol="tcp" port="3030" />
</Endpoints>

Web.config:

 <services>      
      <service name="AlertsService.AlertsService" behaviorConfiguration="AlertsServiceBehavior">
        <endpoint address="" binding="netTcpBinding" bindingConfiguration="NetTcp" contract="AlertsService.IAlertsService" />
        <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="MexTcp" contract="IMetadataExchange" />
      </service>
    </services>  

<bindings>
      <netTcpBinding>
        <binding name="NetTcp" />
      </netTcpBinding>
      <mexTcpBinding>
        <binding name="MexTcp"/>
      </mexTcpBinding>
</bindings>      

Ответы [ 3 ]

4 голосов
/ 27 февраля 2012

Web Roles хостинг служб WCF не поддерживает протокол TCP. Вам нужно будет разместить свою службу WCF в Worker Role.

Веб-роли:

Веб-роли в Windows Azure обеспечивают поддержку HTTP и HTTPS. протоколы ...

Рабочие роли:

... и позволяют процессу взаимодействовать извне, используя различные Протоколы приложений на основе TCP со службой WCF с использованием привязка netTcpBindings

2 голосов
/ 03 мая 2013

Вы можете включить любые привязки, которые вам нравятся, для WCF в Azure в веб-роли, запустив сценарии запуска, чтобы включить, скажем, net.tcp ( после всего лишь IIS в конце дня, хотя я признаю, что это больше боли, чем должно быть! ). Полную информацию можно увидеть в этой статье

1 голос
/ 28 февраля 2012

Позвольте мне уточнить это, поскольку ответ, данный @magnus johansson, не совсем корректен.Веб-роли в Windows Azure наверняка поддерживают tcp.Однако: размещение служб WCF в IIS ограничено только HTTP.Если вы решите создать свой собственный ServiceHost вне IIS, у вас не возникнет проблем с tcp.

Вот статья MSDN , которая более подробно описывает хостинг WCF в IIS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...