在 Windows Server 2019 上以域用户身份运行时,IIS 站点不会显示静态内容
Posted
技术标签:
【中文标题】在 Windows Server 2019 上以域用户身份运行时,IIS 站点不会显示静态内容【英文标题】:IIS Site won't show Static Content when running as a domain user on Windows Server 2019 【发布时间】:2021-06-20 09:21:57 【问题描述】:寻找一些建议。
我有一个运行 IIS 的 2019 Windows Server。
当我构建一个站点(使用 Windows 身份验证)时,我告诉该站点的应用程序池以域用户身份运行。当我这样做时,网站无法加载任何静态内容(html、css 等) - 给出内部服务器错误 (500)。
有问题的站点是一个 C# .Net 应用程序,任何 .aspx 文件都可以正常工作,但 html 页面不能。当我说 .aspx 页面工作时,它们显示数据但不显示 html 静态内容(即样式)
当应用程序与 SQL Server 数据库进行通信时,该站点作为域用户(服务帐户)运行,该域用户具有读写权限 - 所以我不能使用任何其他类型的身份验证。
在谷歌搜索问题时,我发现“身份验证后模拟客户端”,在此我看不到列出的 IIS_IUSRS 用户。我确实看到了管理员、网络服务和本地服务。在此处添加的选项已禁用。
消息指出“此设置与运行 Windows 2000 Service Pack 1 或更早版本的计算机不兼容”。
如果我将应用程序池运行的域用户添加为服务器上的本地管理员,则网站加载正常,包括 html。
我非常怀疑这是正确的解决方法,因为我正在为服务帐户提供完全的管理员访问权限,有人能指出我正确的方向吗?还有什么我应该做的吗?
【问题讨论】:
听起来像是文件系统权限问题。您的 webroot/静态文件的物理位置在哪里?域用户是否在任何本地组中?您的应用程序池用户是否有权读取 webroot 文件夹及其父文件夹上的文件? 嘿@MisterSmith Web 文件不在 wwwroot 文件夹中,而是在不同的文件夹(在同一个驱动器上),服务帐户(应用程序池用户)完全控制包含所有文件。如果我使用 procmon,我会收到 BAD IMPERSONATION 错误。 您的域用户是否在用户组中? “wwwroot”是在驱动器的根目录中还是在文件夹中?检查您的事件查看器日志和 HTTP 错误日志 %SystemRoot%\System32\LogFiles\HTTPERR - 还有更多信息吗? 使用 FRT 了解哪些模块/处理程序会为您提供这 500 个错误。如果你不从那里开始,就没有什么可进一步讨论的了。 MODULE_SET_RESPONSE_ERROR_STATUS 我告诉我们“没有提供所需的模拟级别,或者提供的模拟级别无效”。 【参考方案1】:检查是否安装了静态内容功能。
图片如下:
【讨论】:
嗨,是的,这一切都已启用 - 当用户是本地管理员时,站点加载正常,当用户不是本地管理员时,无法显示静态内容。谢谢。以上是关于在 Windows Server 2019 上以域用户身份运行时,IIS 站点不会显示静态内容的主要内容,如果未能解决你的问题,请参考以下文章
Windows Server 2003 CA升级到Windows Server 2012 ADCS
如何使用 Nodejs 和 spawn 在 Windows 10 上以管理员身份运行一些 CMD 命令?