我有一个 ASP.Net MVC3 应用程序,它在我的 IIS 6 服务器上的默认应用程序池中运行良好。
我需要让它在自己的服务帐户下运行,所以我创建了一个新的应用程序池并将应用程序移入其中。使用默认设置,应用程序继续正常工作。
我在应用程序池上设置了一个自定义身份,应用程序现在只给我“目录列表被拒绝”错误。
我尝试将身份切换回网络服务,并且应用程序再次开始工作。
是什么阻止了应用程序使用自定义身份运行?这就像 ASP.Net 甚至没有启动。
我已经运行aspnet_regiis -ga <domain\username>
并将该帐户添加到 IIS_WPG 组,因此身份帐户应该可以访问 ASP.Net。
更多信息
我一直在使用 Process Monitor 进行一些诊断,它表明 aspnet_isapi.dll 没有加载自定义标识。
当身份是“网络服务”时,我可以看到加载了 aspnet_isapi.dll,然后是 webengine4.dll。这会在 NTLM 身份验证发生后立即发生。
使用自定义身份,NTLM 身份验证发生,然后 w3wp 进程开始查找默认文件(Default.aspx、Default.htm 等)。
我已经检查过了,该帐户可以访问存储这些 DLL 的框架版本文件夹。