我在Windows 窗体应用程序中有 WCF 自托管服务。我将使用它,以便手持移动设备可以与应用程序进行基本交互。
我已启用 basicHttp ( http://localhost:8080/tagservice/basic
)、NetTCP ( net.tcp://localhost:8888/tagservice
) 和 basicHttpMex 作为端点。
出于测试目的,我在网络上设置了一个虚拟机(并在物理机上重复了这些)。
这些端点都在托管服务的本地机器上工作。
但是,在远程机器上运行 WCFTestClient 时,我得到的结果好坏参半。
- 使用上述端点,我可以连接到服务并查看服务合同,证明 mex (IMetadataExhange) 有效。但我不能使用 http 或 net.tcp。我收到错误消息
无法连接到http://localhost:8080/tagservice/basic。TCP错误代码10061:无法建立连接,因为目标机器主动拒绝它127.0.0.1:8080。
无法连接到 net.tcp://localhost:8888/tagservice。连接尝试持续了 00:00:01.0014400 的时间跨度。TCP错误代码10061:无法建立连接,因为目标机器主动拒绝它127.0.0.1:8888。
将 localhost 更改为主机上 app.config 中的真实 IP 地址时,本例中为 192.168.0.61。基本的 HTTP 工作。但是 net.icp 失败了
“服务器拒绝了客户端凭据。”
我的两个问题是:
- 为什么 net.tcp 失败了?据我所知,我没有选择输入凭据。
- 鉴于 IP 地址可以更改,我怎样才能让 app.config 使用 DHCP 服务器分配的 IP 地址?一旦该软件从开发环境转移到生产环境,IP 地址就不能被硬编码,因为它会改变。