【发布时间】: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 和网络应用)?
-
不,它们在不同的服务器上。