[英]IIS 7.5 with process idenity set to user has wrong USERPROFILE
首先,這是我在類似主題上的第三個問題..但我仍然沒有答案,也許只能回答這個問題(請參閱第一個 , 第二個 )。
我的Web應用程序(IIS 7.5下的ASP.NET MVC3)運行git來訪問某些github存儲庫。 將工作站升級到Windows SP1后,它停止工作。 原因是git一旦啟動,它實際上就運行ssh.exe與github通信。 ssh.exe似乎掛斷了,因此所有應用程序掛起。
該應用程序使用的應用程序池使用與我自己相同的進程標識。 但是使用ProcessHacker可以看到以下圖片:
由於USERPROFILE指向/ system32 / config / systemprofile,因此ssh.exe期望具有.ssh文件夾,其中包含公用/專用密鑰。 由於沒有鑰匙,它會掛起。
但是密鑰通常在〜/ .ssh中(在我的情況下為c:\\ users \\ alexander.beletsky.ssh)。 我將密鑰復制到/ system32 / config / systemprofile中后,應用程序即開始按預期工作。
我的問題是,為什么w3wp.exe認為它的配置文件在/ system32 / config / systemprofile中? 有可能改變嗎? 它是應用程序池的預期行為還是僅是我的計算機的問題?
等待任何線索!
編輯
應用程序池的“加載用戶配置文件”屬性設置為TRUE。
ssh.exe
實際上正在使用HOME環境變量。 檢查設置是否正確。
因為我的機器在進程黑客的環境頁面中具有相同的值,並且仍然
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
具有我的用戶appData的值,並且我具有SP1,我認為它不應與之相關,而應與您配置中的某些內容有關。 檢查您的inetmgr是否已為您的應用程序正確設置了身份。 打開C:\\ inetpub \\ temp \\ appPools \\ yourAppPoolName \\ yourAppPoolName.config並檢查此設置是否存在:
<configuration>
....
<system.applicationHost>
<sites>
<site name="Default Web Site" id="1" serverAutoStart="true">
<application path="/yourAppPath" applicationPool="yourAppPoolName">
<virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\yourAppPath" userName="yourUserName" password="[enc:AesProvider:someHashHere=:enc]" />
</application>
...
</site>
</sites>
<system.applicationHost>
<configuration>
如果沒有,則可以在此處進行配置(以純文本形式輸入密碼,也可以使用inetmgr進行配置(如我在回答其他問題時所述)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.