使用ServiceHostFactory时,“安全支持提供程序接口(SSPI)协商失败”

时间:2010-09-01 04:38:58

标签: wcf exception-handling wcf-security wshttpbinding servicehost

我最近开始使用自定义ServiceHostFactory,因为我想使用WCF的依赖注入。我的客户端和服务都在本地计算机上从VS2010运行,服务正在使用ASP.NET Development Server。我为什么现在遇到这个问题?我过去在wsHttpSecurity上取得了成功,在本地计算机上同时拥有客户端和服务。我真的认为这里唯一的区别是使用ServiceHostFactory。我尝试过使用userPrincipalName属性,但我甚至不确定我应该为该值添加什么。它应该是MachineName \用户名吗?这个属性会有所作为吗?我非常乐意为您提供任何帮助。

1 个答案:

答案 0 :(得分:4)

UserNamePrincipal描述服务凭据。如果您将UPN设置为某个帐户,则声明该服务将在该帐户下运行的进程中托管。此信息以WSDL形式传递给客户端。当客户端打开服务通道时,它首先验证服务是否在声明的帐户下运行(某些安全握手)。如果没有抛出异常,因为服务未经过身份验证。如果您在开发服务器上运行该服务,则必须将UPN设置为当前帐户。