【发布时间】:2012-10-08 13:23:34
【问题描述】:
我正在尝试使用 C# 使用 TFS API 进行签入、签出、GetLatest 等。 对于开发 PC 和管理员用户来说,这可以完美地工作。 但是,在未安装 VS 2010 且 TFS 用户是非管理员的专用机器上,这不起作用。 我收到以下错误: *
访问注册表项 'HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0' 被拒绝。 2012-10-08 14:58:30 [...] 错误:在 Microsoft.Win32.RegistryKey.Win32Error(Int32 errorCode, String str)
在 Microsoft.Win32.RegistryKey.CreateSubKey(字符串子键, RegistryKeyPermissionCheck 权限检查,RegistrySecurity registrySecurity)在 Microsoft.TeamFoundation.Client.UIHost.get_UserRegistryRoot() 在 Microsoft.TeamFoundation.VersionControl.Client.Workstation.get_GetLatestOnCheckout()
*
我想知道这是否与管理员权限有关? TFS“用户”实际上是在该帐户下运行的网站,因此它是并且不应该是管理员。
我尝试在同一台机器上使用我自己的凭据运行一个测试控制台应用程序,它可以工作。所以这是一个凭据。
有人可以帮忙吗? 使网站用户帐户成为管理员就足够了吗?
还有:在创建本地工作区时,它想访问注册表什么?
【问题讨论】:
-
我已经能够在没有 Visual Studio 的情况下进行 TFS 工作项 API 调用。如果您显示导致此异常的操作类型可能会有所帮助。
-
您在编写它时回答了自己,它适用于具有您的凭据的控制台。我不知道您使用的是什么 iis 版本,但默认情况下,aspnet 用户/应用程序池用户没有访问注册表的权限。您不必将用户变为管理员,而只需添加读取(如果需要,写入)权限即可访问注册表项。
-
听起来像是安全/凭据问题。当您使用自己的凭据运行网站时会发生什么?
标签: c# .net tfs registry tfs-sdk