【发布时间】:2012-02-15 22:45:14
【问题描述】:
我有一个 WCF 服务作为 Windows 服务托管在我的本地计算机上。现在我正在尝试在客户端中添加服务引用(再次在我的本地开发机器上),但出现错误
元数据包含无法解析的引用: 'net.tcp://localhost:8523/Service1'。无法连接到 net.tcp://localhost:8523/Service1。连接尝试持续了 时间跨度为 00:00:02.0011145。 TCP 错误代码 10061:无连接 可能是因为目标机器主动拒绝了它
我检查了 Windows 防火墙没有阻止端口 8523。我什至在 Windows 防火墙中创建了一个新规则以允许运行 8523 端口。但是当我运行netstat -sp tcp 时,我似乎找不到端口 8523。但我可以看到 Serice1 服务的状态在服务中设置为 START。这是配置文件
服务库
<system.serviceModel>
<services>
<service name="WcfServiceLibrary1.Service1">
<endpoint
address=""
binding="netTcpBinding" bindingConfiguration=""
contract="WcfServiceLibrary1.IService1">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint
address="mex"
binding="mexTcpBinding" bindingConfiguration=""
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:8523/Service1" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Windows 服务项目中的配置看起来相同。
【问题讨论】:
-
如果托管在控制台应用程序中,该服务是否具有相同的配置并按预期工作?您是否检查了事件日志中可能来自 Windows 服务的错误消息?您也可以尝试完全禁用防火墙,以确保它不会造成问题。
-
一旦您启动该服务,您确定它不会因错误而再次停止(Clemens 建议与事件日志将显示这一点)。刷新服务视图可能会显示它再次停止
-
@Clemens 我检查了事件日志,不存在错误消息。它只是显示服务成功启动的信息。我完全禁用了 Windows 防火墙,不幸的是仍然出现同样的错误。
-
@RichardBlewett 正如我在上面的评论中所说,服务运行成功,并且没有任何问题继续运行。
-
只是因为我在活动 tcp 连接列表中看不到 8523 端口,而我的服务正在运行,并且我在事件日志中看不到错误消息,这可能是配置有问题,它会阻止服务在 8523 端口下运行???有什么方法可以从 Services 中查看我的服务下运行的端口是什么?
标签: wcf tcp nettcpbinding