我的Web应用程序必须访问本地资源,文件/文件夹,才能进行git clone / pull / push。我创建了一个单独的应用程序池,其中包含进程标识==我自己的帐户(机器管理员)。
但是,如果我这样做:
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
返回值:
"C:\\Windows\\system32\\config\\systemprofile\\AppData\\Local"
所以,看起来仍然使用系统配置文件。 git clone
和其他git操作挂起,似乎无法找到.ssh键等。
有趣的是,它在Windows SP1更新之前运行良好(至少我责怪更新,因为机器上没有更改)。
答案 0 :(得分:1)
如果还没有,请尝试设置:
<identity impersonate="false"/>
web.config中的
修改强>
我错了,您需要在此处拥有访问本地文件夹的应用程序池标识:
System.Security.Principal.WindowsIdentity.GetCurrent()
编辑2
我找到了解决方案。要运行应用程序AS,您需要打开模拟(应用程序池设置不适用于我的IIS7.5),但作为特定用户。因此,要启用此功能,您需要在web.config中启用模拟并指定user:
<identity impersonate="true" password="o1j2813n" userName="obrad" />
您也可以通过inetmgr设置:
无论哪种方式,设置后,
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
给出:
C:\Users\obrad\AppData\Local
另一次更新:
我一直在寻找一种方法来做同样的事情而不将我的密码放在web.config中,并且可以在基本模拟开启时确认我也获得了本地用户文件夹
<identity impersonate="true"/>
但是在应用程序连接的情况下(在应用程序设置下 - &gt;以...形式连接......)和我一样: