C# 只有在使用NetworkService时,站点才会使用ApplicationPoolIdentity在本地启动;HTTP错误503。该服务不可用。”;

C# 只有在使用NetworkService时,站点才会使用ApplicationPoolIdentity在本地启动;HTTP错误503。该服务不可用。”;,c#,permissions,visual-studio-2013,asp.net-mvc-5,.net-4.5,C#,Permissions,Visual Studio 2013,Asp.net Mvc 5,.net 4.5,我提出这个问题是希望从社区得到一些帮助,但在充分解释和详细说明我的问题的过程中,我似乎已经设法解决了它,以一种合法的非黑客方式(如果我错了,请告诉我),所以我将把它保留在这里,希望它能帮助其他人 问题: 我正在将我的Visual Studio 2010.NET 4 MVC4站点升级为Visual Studio 2013.NET 4.5 MVC5。当使用Visual Studio IIS时,该站点运行正常,但当我将其切换到Windows IIS并将用户设置为ApplicationPoolIdent

我提出这个问题是希望从社区得到一些帮助,但在充分解释和详细说明我的问题的过程中,我似乎已经设法解决了它,以一种合法的非黑客方式(如果我错了,请告诉我),所以我将把它保留在这里,希望它能帮助其他人

问题:

我正在将我的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 

我创建了一个名为APPPOOL.004的文件夹,然后它抱怨APPPOOL.005,然后又抱怨APPPOOL.006,它一直在运行

解决方案


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

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

请告诉我在授予ApplicationPoolIdentity对C:\Users的临时完全访问权限时是否造成了任何额外的安全问题

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