今天早上我刚刚尝试将一个旧的 ASP.NET 网站的应用程序池切换到使用 AD 帐户进行 SQL 访问的应用程序池,这样做之后,网站上的大多数静态内容(即一些图像和 CSS 文件)都不可用,并且只有 500 个。
激活失败请求跟踪后,错误全部如下:
Either a required impersonation level was not provided, or the provided impersonation
level is invalid. (0x80070542)
谷歌搜索了一下(主要是这个问题)结果我的 AD 帐户需要一个特定的策略:身份验证后模拟客户端
现在一般来说我不会介意牺牲一名实习生并呼唤 AD 管理员来提供帮助,但现在我试图了解为什么以前这不是一个问题。
我将这个特定的应用程序池用于其他应用程序(ASP .NET MVC 4),并没有引起任何问题,每个内容都得到了正确提供。
所以我的问题很简单:
- 缺少策略是否是导致错误的可能原因?(我无法自己测试,我需要一个成熟的管理员,而且请求需要一些时间)
- 为什么我在第一个应用程序中之前没有遇到错误?据我所知,Webforms 和 MVC 在提供静态内容方面没有区别。
答案1
好吧,答案是,需要身份验证后模拟客户端,但不仅如此。在我公司的特定环境中,IIS 设置的大部分权限都被全局组策略阻止,我们使用的服务器上需要一个新的本地组策略。
有关 IIS 对其应用程序池用户所需权限的更多信息,我建议这