Можно ли использовать netTcpBinding с сервером разработки VS 2008? - PullRequest
4 голосов
/ 06 августа 2009

Возможно ли иметь конфигурацию службы WCF, подобную этой:

  <service behaviorConfiguration="WcfService1.Service1Behavior"
    name="WcfService1.Service1">
    <endpoint address="" binding="netTcpBinding" bindingConfiguration=""
      contract="WcfService1.IService1">
    </endpoint>
    <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration=""
      contract="IMetadataExchange" />
    <host>
      <baseAddresses>
        <add baseAddress="net.tcp://localhost/netTcpService" />
      </baseAddresses>
    </host>
  </service>

И размещено ли оно на сервере разработки ASP.NET, поставляемом с Visual Studio 2008, или мне обязательно нужно разместить службу в IIS 7 или самостоятельно разместить ее в управляемом приложении / службе Windows?

Спасибо за ваши идеи!

1 Ответ

11 голосов
/ 06 августа 2009

IIS6 и встроенный веб-сервер Cassini поддерживают только http, извините.

Вам придется самостоятельно размещать свой сервис, например, в. консольное приложение или разместите его в IIS7 для использования NetTCP.

VS2008 SP1 также поставляется с приложением WCF Test Host, которое можно использовать для этих целей, и поддерживает NetTCP и все другие протоколы.

Он называется WcfSvcHost.exe и должен быть найден в вашем каталоге C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE. Вы можете указать DLL, содержащую реализацию вашей службы и файл конфигурации для нее, и она будет загружать вашу службу и размещать ее для вас.

Документация MSDN для WcfSvcHost находится здесь:
http://msdn.microsoft.com/en-us/library/bb552363.aspx

Вот как это будет выглядеть в вашей среде:

alt text

и вот WcfTestClient.exe, подключенный к этой размещенной службе - обратите внимание на конечную точку netTcp:

alt text

Чтобы настроить его в Visual Studio, используйте вкладку «Свойства» проекта библиотеки служб WCF и выберите для запуска WcfSvcHost.exe в качестве внешней программы и укажите правильные аргументы командной строки, например:

альтернативный текст http://i28.tinypic.com/104p0jk.png

Теперь, если вы нажмете F5, чтобы запустить библиотеку классов, содержащую вашу службу WCF, он запустит тестовый хост и разместит там библиотеку вашей службы, готовую к тестированию.

Марк

...