我有一个WCF服务,它是从我的web应用程序调用的。在SSL端口443上进行WCF服务调用。
当我的应用程序进行调用时,我在日志文件中收到以下错误消息: HTTP请求未经授权,客户端身份验证方案为'Ntlm‘。从服务器收到的身份验证头是'Negotiate,NTLM‘
我使用cscript命令检查了我的机器( iis 5.1)和部署WCF服务的机器(IIS 6.0)上的IIS身份验证头:
对于iis 5.1 adsutil set w3svc/1/NTLM身份验证提供者“协商,NTLM”
类似地,在服务器机器IIS6.0上使用以下命令设置了头文件: adsutil set w3svc/1/root/ntauthenticationproviders "Negotiate,NTLM“
我反复检查了报头,它们在两端都有相同的值“协商,NTLM”,但是我的服务调用失败了。
请帮帮忙。
发布于 2011-02-23 22:02:46
使用NTLM身份验证时,在调用服务器上执行的用户必须可以在域内的标头中进行验证。这意味着您的IIS 5.1计算机必须在域可行用户下运行其IIS实例(应用程序池)。由于应用程序池几乎都是由本地系统、网络服务或AppPoolService (或类似的系统帐户)运行的,其中一些域可用,因此您需要将执行调用的IIS实例配置为由在域中具有适当权限的服务帐户运行。
https://stackoverflow.com/questions/5091870
复制相似问题