![](/img/trans.png)
[英]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.