是否可以将netTcpBinding与VS 2008开发服务器一起使用?

时间:2009-08-06 07:09:17

标签: wcf nettcpbinding net.tcp

是否可以使用这样的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>

将它托管在Visual Studio 2008附带的ASP.NET开发服务器上,还是必须在IIS 7中托管服务或在托管应用程序/ Windows服务中自托管它?

感谢您的见解!

1 个答案:

答案 0 :(得分:11)

IIS6和内置的Cassini Web服务器都只支持http,抱歉。

您必须自行托管您的服务,例如:控制台应用程序,或在IIS7中托管它以使用NetTCP。

VS2008 SP1还附带了一个可用于这些目的的WCF测试主机应用程序,它也支持NetTCP和所有其他协议。

它名为WcfSvcHost.exe,应该在C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE目录中找到。您可以为其指定包含服务实现的DLL和配置文件,它将加载您的服务并为您托管。

WcfSvcHost的MSDN文档在这里:
http://msdn.microsoft.com/en-us/library/bb552363.aspx

以下是您环境中的样子:

alt text

这是连接到该托管服务的WcfTestClient.exe - 请注意netTcp端点:

alt text

要在Visual Studio中进行设置,请使用WCF服务库项目的“属性”选项卡,然后选择启动WcfSvcHost.exe作为外部程序并提供正确的命令行参数,如下所示:

alt text http://i28.tinypic.com/104p0jk.png

现在,如果按F5运行包含WCF服务的类库,它将启动测试主机并在那里托管您的服务库,随时可以进行测试。

马克