我正在构建一个连接到TFS的ASP.NET MVC应用程序。该应用程序正在显示带有测试计划,套件和测试用例的树。
当应用程序在Visual Studio 2012 Update 3中运行时,连接到开发计算机上安装的TFS实例或连接到Visual Studio Online时,一切正常。当我在本地IIS上部署ASP MVC应用程序时,在连接到本地TFS时仍然可以使用。但是,当连接到Visual Studio Online时,TFS API给我错误“从对COM组件的调用返回了错误HRESULT E_FAIL”。访问ITestPlan.RootSuite.Entries时,在获取测试计划下的条目时。
可能是什么问题或解决方案?
更多信息:
我正在引用以下程序集,所有版本均为11.0.0.0
Microsoft.TeamFoundation.Build.Common.dll
Microsoft.TeamFoundation.Client.dll
Microsoft.TeamFoundation.Common.dll
Microsoft.TeamFoundation.dll
Microsoft.TeamFoundation.TestManagement.Client.dll
Microsoft.TeamFoundation.TestManagement.Common.dll
Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll
Microsoft.TeamFoundation.WorkItemTracking.Client.dll
在Visual Studio中运行时,ASP MVC应用程序在IISExpress中运行,并加载以下程序集(根据输出窗口):
GAC_MSIL
Microsoft.TeamFoundation.Client.dll
Microsoft.TeamFoundation.Common.dll
Microsoft.TeamFoundation.dll
Microsoft.TeamFoundation.TestManagement.Client.dll
Microsoft.TeamFoundation.TestManagement.Common.dll
Microsoft.TeamFoundation.WorkItemTracking.Client.dll
Microsoft.TeamFoundation.WorkItemTracking.Common.dll
Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll
Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll
GAC_32
Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll
在IIS中运行时,将加载以下程序集(根据Process Monitor):
C:\ WINDOWS \ assembly \ NativeImages_v4.0.30319_32 \
Microsoft.TeamFoundation.Client.ni.dll
Microsoft.TeamFoundation.Common.ni.dll
Microsoft.TeamFoundation.Diff.ni.dll
Microsoft.TeamFoundation.TestManagement.Client.ni.dll
Microsoft.TeamFoundation.TestManagement.Common.ni.dll
Microsoft.TeamFoundation.VersionControl.Client.ni.dll
Microsoft.TeamFoundation.VersionControl.Common.Integration.ni.dll
Microsoft.TeamFoundation.VersionControl.Common.ni.dll
Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.ni.dll
Microsoft.TeamFoundation.WorkItemTracking.Client.ni.dll
Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.ni.dll
Microsoft.TeamFoundation.WorkItemTracking.Common.ni.dll
C:\ WINDOWS \ assembly \ GAC_32 \
Microsoft.WITDataStore.dll
区别在于IISExpress加载程序集的MSIL版本,而IIS加载本机映像。 IIS会加载VersionControl程序集和Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll,以及Microsoft.TeamFoundation.Diff.ni.dll而不是Microsoft.TeamFoundation.dll。这对我来说似乎很奇怪,我无法解释。
当在IIS中与本地TFS或TFS Online对话时,将加载相同的程序集。我唯一可以得出的结论是,从服务器返回的数据是不同的。但是,该结论与以下事实相矛盾:在IISExpress中,Web应用程序可以处理TFS Online数据。
最佳答案
这是我唯一能找到的与我遇到的类似问题有关的帖子,我想我会分享自己找到的解决方案。我正在制作一个Web应用程序,以从链接到特定项目版本的TFS变更集生成XML。我遇到了一个问题,即我创建的Web应用程序可以在Visual Studio的IIS Express中运行,但是在IIS中设置时,当我使用“ Microsoft.TeamFoundation.WorkItemTracking.Client”命名空间中的内容时失败了。在没有VS调试工具的情况下苦苦挣扎了一段时间(我对编码很陌生,可能有一种适当的调试方法),我发现我遇到了“ TF30063:您无权访问http://(server)”错误。
无论如何解决方案:
在IIS中,转到您的应用程序池高级设置-进程模型标识,然后将其更改为自定义帐户,将用户名和密码设置为TFS用户名和密码。
我知道这是一个过时的帖子,这可能不是原始海报的问题,但我认为我还是会发布,以防它对某人有所帮助。