仅当使用NetworkService时,站点才会使用ApplicationPoolIdentity在本地启动:“HTTP错误503.服务不可用”。

我希望从社区获得一些帮助,我开始提出这个问题,但在完全解释和详细说明我的问题的过程中,似乎我已经设法解决了它,似乎是一种合法的非hackish方式(请告诉我如果我错的话,所以我会把它放在这里,希望它会帮助别人。

我正在将Visual Studio 2010 .NET 4 MVC4站点升级到Visual Studio 2013 .NET 4.5 MVC5。 使用Visual Studio IIS时,该站点运行正常,但当我将其切换到Windows IIS并将用户设置为ApplicationPoolIdentity并启动该站点时,我得到一个页面,上面写着“HTTP错误503.服务不可用。”,以及ApplicationPool被停止了。

我发现有几个问题在StackOverflow上问同样的事情,但没有一个问题有可接受的解决方案。 一个答案是右键单击AppPool> AdvancedSettings> LoadUserProfile = FALSE。 这确实有用,我和它一起使用了一段时间,但我发现它导致了PhantomJS加载外部脚本的问题。 我通过将AppPoolUser设置为NetworkService并将LoadUserProfile设置为FALSE(仍然破坏了PhantomJS)进行了测试,然后将LoadUserProfile设置为TRUE并且它工作正常。

所以我使用NetworkService运行网站,这一切都很好,但我希望能够在完成此升级时使用ApplicationPoolIdentity,以便我可以在生产中使用ApplicationPoolIdentity。

我检查了EventViewer,我收到很多警告,告诉我无法复制文件

\\?\C:\Users\Default\AppData\Roaming\Microsoft\Templates\LiveContent\Managed\SmartArt 

  \\?\C:\Users\TEMP.IIS APPPOOL.004\AppData\Roaming\Microsoft\Templates\LiveContent\Managed\SmartArt Graphics\1033\TC101793893[[fn=Tabbed Arc]].glox. 

我创建了一个名为APPPOOL.004的文件夹,然后它抱怨了APPPOOL.005,然后是APPPOOL.006,它就一直在继续。

然后,我将ApplicationPoolIdentity的完全权限授予C:\ Users文件夹,再次启动该站点,一切正常,配置文件必须已正确创建,并且我的网站正常工作。 然后,我从ApplicationPoolIdentity中删除了对C:\ Users的访问权限,该网站仍然可以正常工作。

我将ApplicationPoolIdentity的完全权限授予C:\ Users文件夹,启动了网站,一切正常,配置文件必须已正确创建,并且我的网站正常工作。 然后,我从ApplicationPoolIdentity中删除了对C:\ Users的访问权限,该网站仍然可以正常工作。

请告诉我,在给予ApplicationPoolIdentity临时完全访问C:\ Users时,是否可能导致任何额外的安全问题