[英]Determine which w3wp.exe process belongs to which App Pool in Windows 7 / IIS7.5?
[英]IIS7.5 Application Pool, process identity and environment
我有必须访问本地资源,文件/文件夹的Web应用程序,才能执行git clone / pull / push。 我用自己的帐户(计算机管理员)创建了一个单独的带有“进程标识==”的应用程序池。
但是,如果我这样做:
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
返回值:
"C:\\Windows\\system32\\config\\systemprofile\\AppData\\Local"
因此,看起来系统配置文件仍在使用。 git clone
和其他git操作挂断,似乎找不到.ssh密钥等。
有趣的是,它在Windows SP1更新之前运行良好(至少我归咎于更新,因为计算机上没有其他更改)。
如果还没有,请尝试设置:
<identity impersonate="false"/>
在web.config中
编辑
我错了,您需要具有可在此处访问本地文件夹的应用程序池标识:
System.Security.Principal.WindowsIdentity.GetCurrent()
编辑2
我找到了解决方案。 若要按您的身份运行应用程序,您毕竟需要打开模拟功能(应用程序池设置不适用于我的IIS7.5),但需要作为特定用户使用。 因此,要启用此功能,您需要在web.config中打开模拟并指定用户:
<identity impersonate="true" password="o1j2813n" userName="obrad" />
您也可以通过inetmgr进行设置:
无论哪种方式,在设置此设置之后,
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
给出:
C:\Users\obrad\AppData\Local
另一个更新:
我一直在寻找一种无需将密码输入web.config即可执行相同操作的方法,并且可以在启用基本模拟功能时确认我也获得了本地用户文件夹
<identity impersonate="true"/>
但是在应用程序像我一样连接的情况下(在应用程序设置->连接为...):
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.