无法启用net.tcp端口共享

时间:2011-07-13 19:39:54

标签: vb.net wcf

我在Window 7 x64计算机上进行开发工作,部署到Windows 2008 x32服务器。目前我正在向一些内部应用程序添加WCF服务,以便我们可以使用net.tcp绑定构建较小的客户端,该绑定向用户报告服务器正在执行的操作,而无需运行多个服务器实例。为了减少应用程序需要多少管理,我尝试在我的第一个服务器应用程序上启用端口共享。我正在使用该应用程序自行托管WCF服务,以便在必要时可以轻松地从一台服务器移动到另一台服务器。这是启动服务器的代码:

Dim _service_host As ServiceHost
Dim active_server_address As Uri = New UriBuilder("net.tcp", "localhost", CInt(My.Settings.ServerPort)).Uri
_service_host = New ServiceHost(GetType(UpdateServiceOps), active_server_address)
_service_host.AddServiceEndpoint(GetType(IUpdateService), New NetTcpBinding With {.Name = "endpoint_tcp"}, "MiddlewareEndpoint")
_service_host.Description.Behaviors.Add(New ServiceMetadataBehavior)
_service_host.AddServiceEndpoint(GetType(IMetadataExchange), MetadataExchangeBindings.CreateMexTcpBinding, "mex")
_service_host.Open()

这很有效。但是,当我将其更改为下面的内容时,我收到错误消息。这是代码:

Dim _service_host As ServiceHost
Dim active_server_address As Uri = New UriBuilder("net.tcp", "localhost", CInt(My.Settings.ServerPort)).Uri
_service_host = New ServiceHost(GetType(UpdateServiceOps), active_server_address)
_service_host.AddServiceEndpoint(GetType(IUpdateService), New NetTcpBinding With {.Name = "endpoint_tcp", .PortSharingEnabled = True}, "MiddlewareEndpoint")
_service_host.Description.Behaviors.Add(New ServiceMetadataBehavior)
_service_host.AddServiceEndpoint(GetType(IMetadataExchange), MetadataExchangeBindings.CreateMexTcpBinding, "mex")
_service_host.Open()

当我在最后一行放置断点时出现以下错误:Unable to automatically step into the server. Connecting to the server machine 'nettcpportsharing' failed. The requested name is valid, but no data of the requested type was found. Try ... Catch块包含该代码,表示异常类型为AddressAlreadyInUseException ...但是当我运行时netstat我没有看到任何其他人在该地址上收听。在我的解决方案中,任何地方都没有出现'nettcpportsharing'。我已经检查过以确保Net.Tcp端口共享服务已启动。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我认为这可能是权限问题。请参阅相关的article,其中说明了如何配置端口共享服务以支持自托管服务。

(出于生产目的,我强烈建议您使用WAS进行IIS托管 - 它使服务管理更加清晰,您可以免费动态启动/关闭。)