【问题标题】:Environment.GetFolderPath(Environment.SpecialFolder.InternetCache) returns empty string in ASP.Net projectEnvironment.GetFolderPath(Environment.SpecialFolder.InternetCache) 在 ASP.Net 项目中返回空字符串
【发布时间】:2011-10-26 12:41:32
【问题描述】:

我正在本地机器(Windows 7)上开发 ASP.Net 项目(框架 2.0)。 IIS 7.5 是本地网络服务器。

当我在本地运行项目时,Environment.GetFolderPath(Environment.SpecialFolder.InternetCache) 返回空字符串。

我有点害羞和沮丧,因为我在设置这台新的开发机器时遇到了这个问题,但不记得解决方案,也无法通过谷歌搜索找到解决方案。开发团队中运行 XP 的其他人不会遇到此问题。

我期待 C:\Users\DefaultAppPool\AppData\Local\Microsoft\Windows\Temporary Internet Files 的回报。

不确定这是 iis 设置问题还是我可以在某处设置环境变量。

谢谢,杰夫

【问题讨论】:

  • appPool的身份是什么?

标签: asp.net windows-7 environment-variables iis-7.5


【解决方案1】:

我 99% 确定这将归结为权限问题。在 IIS7 中,有一个名为 AppPoolIdentity 的新“用户”,它是应用程序池的默认标识。此用户的权限远低于 IIS 6 中的默认设置。

我可以重现您的问题,我必须将我的 AppPool 设置为作为 LocalSystem 或具有管理权限的特定用户运行以检索 Environment.SpecialFolder.InternetCache 当我查看有问题的文件夹并查看它的权限时这很有意义。

请注意,以更高权限运行 IIS 应用程序池存在安全问题。

【讨论】:

  • 感谢您的回复。这很有帮助。我还发现我可以通过将 AppPoolIdentity 设置为 LocalSystem 来获取文件夹路径。
  • 如果我给 DefaultAppPool,C:\Users\DefaultAppPool\AppData\Local\Microsoft\Windows\Temporary Internet Files 文件夹的完全权限,Environment.SpecialFolder.InternetCache 仍然返回空?
  • 这可能是该文件夹和链上更高的文件夹的组合。我会小心依赖更改文件夹权限,在我的笔记本电脑(Windows 7)上,我的 InternetCache 文件夹是 C:\Windows\system32\config\systemprofile\AppData\Local\Microsoft\Windows\Temporary Internet Files跨度>
猜你喜欢
  • 2011-10-25
  • 1970-01-01
  • 2013-09-05
  • 1970-01-01
  • 2018-09-28
  • 2013-11-15
  • 2012-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多