簡體   English   中英

IIS 7.5(將進程標識設置為用戶)具有錯誤的USERPROFILE

[英]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可以看到以下圖片:

w3wp流程環境

由於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.

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