0

我有一个 WCF 服务在我的客户之前运行良好。我在托管该服务的其他设备上运行了一个 Azure Compute Emulator。由于这仅用于本地测试,因此我为本地端口添加了端口重定向,使用

netsh interface portproxy add v4tov4 listenport=81 listenaddress=192.168.1.100 connectport=81 connectaddress=127.0.0.1

这很好用,因为我可以从服务器设备导入服务引用。但是,当我运行我的应用程序时,使用new ServiceReference1.ServiceClient()初始化我的服务引用并尝试调用它的第一个方法,我得到一个 EndpointNotFoundException。

以下是特点:

  • 本地连接到 192.168.1.100:81 可以工作,我可以在那里使用相同的客户端软件。
  • 我创建了一个新的 WinForms(我的客户端目标是 WinRT)项目,添加了服务引用并调用了该方法,它工作正常(也来自远程设备)。

所以基本上,现在的情况是只有这一个服务引用实例(我尝试删除和添加 - 再次,导入服务引用有效!)不起作用。调试器只是在对服务的第一个方法调用时抛出 EndpointNotFoundException(异常包含正确的 IP 和端口 192.168.1.100:81),因此我很难进一步调试它。

调用方法的代码完全一样(即用new初始化,调用不带参数的客户端方法)。有什么想法可能导致这种情况吗?

4

1 回答 1

0

好的,我找到了造成这种情况的原因。由于我只是在本地开发,我之前没有遇到过这个问题(当我部署到 Azure 时也没有),但显然在像我这样的本地环境中运行,需要“私有网络(服务器和客户端)”功能才能工作。当然,得到与问题相对应的错误会更好,但至少现在已经解决了。

知道为什么此功能与“互联网”功能分开吗?

于 2013-06-24T14:08:34.453 回答