繁体   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