我很混乱。
考虑以下:
- 具有称为 DOM 的域的 Active Directory 环境
- 具有 NetBIOS 名称 VS1 的 IIS 7 框
- 为 VS1 提供别名的 DNS 记录为 pineapple.london.uk.corp
- 作为 DOM\PineappleService 运行的应用程序池
- 启用 Windows 身份验证。
- 客户端使用 HttpWebRequest 调用盒子上的 XML/JSON ASP.NET 服务。
该服务调用网络上的工作站来收集信息。这适用于我使用以我身份运行的 IIS Express 的开发,因为 IISX 只是一个 .exe
在生产中,服务工作正常,身份验证工作,但调用导致服务(作为 PineappleService 运行)访问网络上的内容的函数失败。
我怀疑存在 SPN 注册问题,但我不知道要设置哪些 SPN。
最近,我偶然发现了这篇文章,这似乎与其他一些文章大相径庭:
请注意,它说
SPN 要求与上述相同。您不必为 Domain1\Username1 添加像 http/ 这样的 SPN,这与 IIS 6.0 不同(我们必须为应用程序池标识添加一个 http/ 形式的 SPN)。
所以我不知道什么是对的了。我不知道是否需要注册 HTTP SPN 或 HOST SPN 或使用 DNS 别名或 NetBIOS 名称,并在 PineappleService 帐户或 VS1 计算机帐户上设置它们。
我不知道当我尝试时是否存在缓慢的 AD 复制问题,这意味着我必须在反复试验之间等待一个小时。
现在一切都那么复杂。我作为系统操作员和开发人员工作了 15 年,我感觉到域和工作站以及权利和政策的终结。这一切都变得太多了。
谢谢你的帮助。
卢克
这是与 ServerFault 的交叉帖子,没有得到任何答案:
https://serverfault.com/questions/417483/serviceprinciplename-setup-for-web-service-on-iis-