【发布时间】:2014-05-01 14:09:43
【问题描述】:
这个问题好像和这个类似:IIS site not using identity specified in app pool IIS 7 + 但是,那里没有答案。
底部有一个 tl;dr。
要记住的是,我不是设置服务器的人,所以他们可能更改了一些我不知道的设置。
我们有一个在 IIS 7 上运行的 ASP.NET Web 服务。该 Web 服务设置为使用 DefaultAppPool,并且应用程序池的标识设置为域用户(假设它是“localdomain\user1”)。
Web 服务无法保存到某个网络文件夹,因此我们授予 localdomain\user1 对该文件夹的读/写权限。但是,它仍然无法保存在那里。
我无法远程调试,它在我自己的计算机上运行良好(可能是因为它在 Visual Studio 的 IIS express 中运行并且我的用户确实可以访问),所以我尝试更改 Web 服务,以便错误消息包含运行它的用户名。
如果我使用Environment.UserName 得到它,结果是“IUSR”。如果我使用System.Security.Principal.WindowsIdentity.GetCurrent().Name,它会返回“NT AUTHORITY\IUSR”。
除非上述方法不可靠,否则 Web 服务似乎在默认用户 (IUSR) 下运行,而不是在其应用程序池中设置的用户。我不知道为什么,谁能解释一下?
编辑:如果我使用 RDP 登录,服务器上的任务管理器显示 w3wp.exe 进程正在由 user1 运行。我不确定该相信哪一个。
谢谢。
tl;dr:Web 服务的应用程序池设置为域用户,但它似乎在 IUSR 下运行。我该如何防止呢?
【问题讨论】:
标签: asp.net web-services iis