1

我正在努力解决与名称解析或类似问题有关的 WCF 问题。当我通过 Web 服务器上的 Web 应用程序使用应用程序服务器上的 wcf 服务 (netTcpBinding) 时,它不起作用。好的,它在大多数情况下都不起作用。如果您使用 localhost 或 127.0.0.1 从 Web 服务器本身访问 Web 应用程序,则它可以工作。但是,通过另一台客户端计算机通过 Web 服务器访问它或使用主机名或 IP 地址在 Web 服务器上本地访问 Web 应用程序不起作用。在这两种情况下,您都会收到套接字连接中止错误。

更有趣的是,将所有安全性切换为“无”而不是“传输”可以解决问题。

我的问题是,是否可以使用您的 Web 服务器访问 wcf 服务并仍然使用传输安全性?或者这是一个错误/设计的行为?

非常感谢您的任何见解,史蒂夫

4

2 回答 2

2
  1. 默认的 NetTcpBinding 安全选项是 Kerberos / Windows 身份验证。如果您的客户端和服务不在同一个域中,它将无法工作。您可能需要查看基于证书的身份验证。

  2. 如果您的服务在域帐户下运行,请尝试将其更改为 LocalService 或 NetworkService 以查看是否可以解决问题。

于 2011-02-02T08:53:42.850 回答
1

传输安全通常只在点对点上起作用——当客户端直接连接到服务器时。

如果您有来自 Internet 的客户端,您无法控制他们经过多少中间跃点 - 因此传输安全性,即使您让它工作,也很可能根本不起作用,例如您的消息可能受到保护从客户端到第一个跃点,从最后一个跃点到您的服务器 - 但不是在跃点之间。

对于 Internet 场景,传输安全通常不是一个有效的选项 - 对于这些情况,请使用消息安全。

我不能 100% 确定为什么连接根本不起作用 - 但无论如何,如果您不在公司防火墙后面,我不会在这种情况下使用具有传输安全性的 netTcp。

您能否将您的服务器端配置(里面的任何内容<system.serviceModel>)添加到您的问题中,以查看您如何设置传输安全性?

于 2010-02-17T06:24:25.303 回答