[英]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.