【问题标题】:System.IO access error on Cache folder in ASP.NET applicationASP.NET 应用程序中缓存文件夹的 System.IO 访问错误
【发布时间】:2011-06-29 05:22:15
【问题描述】:

我正在开发一个访问 Team Foundation Server 2010 并创建新工作项的 ASP.NET 应用程序。应用程序在 DefaultAppPool 中运行,使用 NetworkService 作为标识。我收到以下错误:

[UnauthorizedAccessException: Access to the path 'Cache\v10' is denied.]

System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +12892935
   System.IO.Directory.InternalCreateDirectory(String fullPath, String path, Object dirSecurityObj) +1594
   System.IO.Directory.CreateDirectory(String path) +311
   Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore.GetDefaultCacheDirectory() +1807816
   Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore.InitializeInternal() +225

问题是我使用服务帐户连接到 TFS,因为此表单的用户无权在 TFS 中添加工作项。我已经给了网络服务和特定于表单的服务帐户对应用程序根目录的完全控制权。我不确定如何解决这个问题。

我们的服务器正在运行带有 IIS 7 的 Windows Server 2008。当从我的本地开发机器以调试模式运行时,该应用程序可以正常工作。

有什么建议吗?

编辑:根据我所见,Grant 下面的帖子是正确的,但我在原始帖子之前已经完成了这些步骤。 (这就是为什么路径是 Cache\v10 而不是长长的 C:\Program Files ... 默认路径的原因。)我给了 NetworkService 帐户对 IIS 应用程序根文件夹的完全所有权,但我们仍然得到 UnauthorizedAccessException。

我们能够通过将 Cache 文件夹转换为网络共享并授予 NetworkService 对该共享的完全访问权限来解决此问题。我宁愿不必这样做,但它现在似乎工作正常。如果有人知道我可以尝试“正确”地做这件事,我将不胜感激。

【问题讨论】:

  • 他们在同一个盒子里吗? (TFS 和网络应用)?
  • 不,它们在不同的服务器上。

标签: asp.net iis-7 tfs


【解决方案1】:

当使用 Work Item Tracking 对象模型时,它需要在磁盘上的一个文件夹来存储元数据缓存。

对于普通用户,它位于 C:\Users\username\AppData\Local\Microsoft\Team Foundation\3.0\Cache 下 对于网络服务,位于 C:\ProgramData\Microsoft\Team Foundation\3.0\Cache

但是,在您的情况下,网络服务似乎没有创建或写入该文件夹的权限。

你有两个选择:

  1. 创建文件夹并授予本地 IIS_WPG 组对该文件夹的访问权限
  2. 在其他地方创建文件夹并授予本地 IIS_WPG 组访问该文件夹的权限,并在您的 web.config 中设置一个密钥

<appSettings><add key="WorkItemTrackingCacheRoot" value="pathtofolder"/>

更具体地说,您可以从此代码中获取文件夹的位置:

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), @"Microsoft\Team Foundation\3.0\Cache");

【讨论】:

  • 这都是正确的,但我在发布此内容时已经设置了自己的缓存文件夹。我更详细地编辑了我的原始帖子。
  • 我自己也遇到了这个问题。格兰特,一如既往,我永远钦佩你:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 2019-08-09
相关资源
最近更新 更多