【发布时间】:2011-02-16 18:30:01
【问题描述】:
我正在开发一个 ASP.NET webforms 应用程序,该应用程序将用作在 TFS 2010 中创建工作项的简单接收表单。
当我在本地以调试模式运行应用程序时,它可以正常工作——提交完成并创建了工作项。
当我将表单发布到我们的开发服务器时,它会出现黄屏并抛出以下错误:
[安全异常:TF50309: 以下帐号没有 足够的权限来完成 操作:DOMAINNAME\SERVERNAME$。这 需要以下权限 执行此操作:查看 集合级信息。]
在我的代码中,我尝试使用服务帐户访问 TFS,据我所知,当我在调试模式下运行时,服务帐户被正确使用。
这是我的 C# 的样子:
string tfsServerUrl = "http://servername:8080/tfs";
string tfsProject = "Web Team Projects";
NetworkCredential tfsCredential = new NetworkCredential("ServiceAccountName", "password", "DOMAIN");
TeamFoundationServer tfs = new TeamFoundationServer(tfsServerUrl, tfsCredential);
tfs.Authenticate();
WorkItemStore workItemStore = new WorkItemStore(tfsServerUrl);
如果我在 tfs.Authenticate() 行设置断点,则服务器对象将服务帐户名称显示为当前用户并且 IsAuthenticated = true。
异常中提到 SERVERNAME$ 的那一行让我很困惑。似乎 IIS 决定尝试使用应用程序池标识而不是我明确提供的凭据来访问 TFS。
我们的开发服务器是一个运行 IIS 7 的 Server 2008 机器。
有什么建议吗?
【问题讨论】: