2

场景如下:客户端计算机已通过 VPN(Cisco VPN 客户端)连接到“工作网络”。工作网络托管一台具有带有 nettcp 绑定的 WCF 服务的计算机。客户端尝试连接到此服务并收到如下异常:

无法连接到 net.tcp://workMachine:2010/SomeService。连接尝试持续了 00:00:01.3180754 的时间跨度。TCP 错误代码 10061:无法建立连接,因为目标机器主动拒绝它 workMachine:2010。

我尝试过的事情:

  1. 将客户端机器的Workgroup改为工作网络workgroup
  2. 为 Windows 网络密码保险库添加了域/用户名/密码,以便它可以用于连接
  3. 使用 IP 地址而不是 workMachine 名称更改了 wcf 服务路径
  4. 检查客户端计算机防火墙并添加以允许 wcf 客户端通过它

以上都失败了,没有工作。有没有人遇到过类似的问题?

客户端计算机在 Windows 7 上

WCF 服务的 SecurityMode 设置为 NONE - 所以这不应该是一个问题。

任何见解都会有所帮助

4

3 回答 3

2

您可能需要通过代理对象明确提供客户端凭据。

假设下面代码中的代理对象实现了 ClientBase 接口之一。

proxy.ClientCredentials.Windows.ClientCredential.UserName = "clientaccount";
proxy.ClientCredentials.Windows.ClientCredential.Password = "S3cr3t1337Pwd";
于 2009-10-08T09:39:36.213 回答
1

您能否(仅出于测试目的)使用 HTTP 端点在同一台机器上公开相同的服务,并尝试从您的 VPN 客户端连接到该服务?

NetTcp 是企业防火墙后面的绝佳选择——只是不知道 Cisco VPN 客户端如何在这里造成麻烦,在使用基于 http 的协议时可能不会出现。现在只是一个疯狂的猜测,但如果你没有别的事可做,试一试!

马克

于 2009-08-07T22:20:24.857 回答
1

另一个有助于调试此类问题的想法,使用 CMD 执行“netstat -a”(您可以附加 -o 开关并找到相关的进程 ID)并查看有问题的端口当前是否打开,如果它是不是您可能对 SMSvcHost.exe 有问题(这是用于管理 IIS 托管 TCP 服务的 Windows 进程)。

我以前遇到过这个问题,并通过重新启动以下服务来纠正它(显然,如果您正在处理实时生产系统,则需要仔细考虑这一点):

NetTcpActivator (Net.Tcp 监听适配器) NetTcpPortSharing (Net.Tcp 端口共享服务)

可能的话:

NetMsmqActivator (Net.Pipe Listener Adapter) NetPipeActivator (Net.Pipe Listener Adapter)

希望这对某人有帮助!

J。

于 2012-01-06T12:55:23.333 回答