kar*_*nge 36 asp.net iis windows-8
我试图从名为'SomeAppPool'的'AppPool'启动一个使用'ApplicationPoolIdentity'的网站,当我启动网站时,我收到以下错误:
当前标识(IIS_APPPOOL\SomeAppPool)没有对'c:\ WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files'的写访问权限
我正在Windows 8下启动Visual Studio 2012中的"使用本地IIS Web服务器"(没有附带调试器)的网站.
我注意到的第一件事是"Temporary ASP.NET Files"文件夹甚至不存在,因此没有任何设置安全权限.
第二个问题是,即使有一个文件夹,我会设置哪些权限?我假设我不应该为通过'ApplicationPoolIdentity'创建的每个用户设置权限.对?
我看到的当前解决方案只是建议将用户设置为"网络服务",但这似乎打破了引入"ApplicationPoolIdentity"的网站的隔离.
Ed *_*bbs 82
这个ASP.NET论坛的答案,在其主题中未得到承认,是我的解决方案.它的影响也很小:它不会尝试重新注册IIS或为用户提供危险的权限.总结答案:
输入以下命令:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Aspnet_regiis.exe -ga domain\user
Run Code Online (Sandbox Code Playgroud)domain\user
在上面的示例中替换您的域和用户.这就是全部.
Aspnet_regiis.exe的Microsoft文档在这里.请注意,-ga
交换机的文档是指版本3.5及更早版本中的错误,它不适用于本地帐户.如果我正确读取它,所有版本都支持域帐户,并且从Framework 4.0开始支持本地帐户.
2017年6月6日更新:对于Windows 8及更高版本,请考虑使用该dism
命令.这个SO答案涵盖了它.感谢@codebrain建议这个.
2015年7月7日更新:@Vertigo很赞赏这个答案也适用NETWORK SERVICE
于2008 R2/2012下的.NET 2.0帐户,所以我上面关于4.0之前的本地帐户的免责声明可能是错误的.
如果其他人发现这适用于.NET 3.5或更早版本的本地帐户,请随时编辑我的答案或在评论中注明; 对于可能遇到同样问题的其他人来说,这将是一个很大的帮助.
我遇到了同样的问题.我检查了c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\
寻找的路径Temporary ASP.NET Files
,但是这个名字没有任何文件夹.所以我手动创建了一个新文件夹并将其命名Temporary ASP.NET Files
并修复了问题.
因此,请确保提到的路径存在.
正在尝试C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319
运行aspnet_regiis.exe
命令。
通常应该设置权限。如果发生 Windows 添加/删除程序,或者安装新的 .NET 版本,这些内容会稍微重置。运行aspnet_regiis.exe
应该会有帮助。
另外,请确保您以管理员身份运行 Visual Studio。
归档时间: |
|
查看次数: |
55076 次 |
最近记录: |