簡體   English   中英

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進行設置: ASP.NET模擬設置屏幕截圖

無論哪種方式,在設置此設置之后,

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)

給出:

C:\Users\obrad\AppData\Local

另一個更新:

我一直在尋找一種無需將密碼輸入web.config即可執行相同操作的方法,並且可以在啟用基本模擬功能時確認我也獲得了本地用戶文件夾

    <identity impersonate="true"/>

但是在應用程序像我一樣連接的情況下(在應用程序設置->連接為...):

應用程序設置屏幕截圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM