这个问题似乎与此类似:IIS站点未使用在应用程序池IIS 7 +中指定的身份。但是,那里没有答案。
底部有一个tl; dr。
请记住,我不是设置服务器的人,因此他们可能更改了一些我不知道的设置。
我们有一个在IIS 7上运行的ASP.NET Web服务。该Web服务设置为使用DefaultAppPool,并且应用程序池的Identity设置为域用户(假设它是“ 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下运行。我该如何预防?
假冒是问题所在。我不知道这是Web服务的web.config中的设置。
更改<identity impersonate="true"/>
为<identity impersonate="false"/>
允许它以localdomain \ user1身份运行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句