NetTcpBinding wcf服务具有远程访问和传输安全性?

时间:2010-02-17 01:03:53

标签: wcf nettcpbinding

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

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

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

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

当客户端直接连接到服务器时,传输安全性通常只能点对点工作。

如果您有来自互联网的客户,您无法控制他们经历了多少中间跃点 - 因此,即使您将其运行起来,运输安全也很可能根本不起作用,例如:您的邮件可能受到保护,不受客户端到第一跳,从最后一跳到服务器 - 但不在跳跃之间。

对于互联网方案,通常,传输安全性不是有效选项 - 对这些情况使用Message Security。

我不是百分之百确定为什么连接根本不起作用 - 但无论如何,如果你不在公司防火墙之后,我就不会在这种情况下使用netTcp和传输安全性。

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