我有一台运行 IIS 的 Windows Server 2003。我专门为 Web 服务应用程序创建了一个应用程序池。该应用程序池的身份是域帐户。通过 Windows 身份验证访问 SQL Server 需要域帐户。
当我使用 NETWORK SERVICE 帐户在默认应用程序池中运行应用程序时,只要我不执行任何访问 SQL Server 的功能,它就可以正常工作。 SQL Server 访问按预期失败,因为 NETWORK SERVICE 帐户在任何 SQL Server 计算机上都没有权限。
当将应用程序更改为使用在域帐户下运行的应用程序池时,我尝试运行任何 Web 服务时都会收到“服务不可用”的信息。如果我将该域帐户设为域管理员,它就可以正常工作。出于显而易见的原因,将该帐户设为管理员并不是一个可行的解决方案。具体来说,在域帐户上运行 IIS 中的 .NET 应用程序需要哪些权限或本地安全策略设置?
谢谢,吉姆
答案1
应用程序池运行时的身份显然需要对其需要处理的每个文件(您的 ASP.NET 网站/应用程序)具有读取权限;它还需要对其可能需要的任何资源具有读取和/或写入权限;因此,如果您的 ASPX 页面将用户上传的文件保存到某个路径,则服务帐户将需要对该路径具有写权限。
如果您收到“服务不可用”错误,则意味着为您的网站/应用程序提供服务的应用程序池已停止。您应该调查发生这种情况的原因;这通常是由于重复的严重错误造成的,您可以在 Windows 的应用程序事件日志中找到证据。