C# 加载TFS工作项文档

C# 加载TFS工作项文档,c#,C#,正在执行一些tfs自动化,并且一直在使用GetWorkItem调用检索WorkItemDocument对象,但是在检索到的workitem上,我在标题中发现了错误。我在哪里可以找到错误的描述,或者它产生错误的原因 _COMPlusExceptionCode=-532462766 我在谷歌上搜索过,没有关于这个例外的定义 foreach (int i in (doc2 as IResultsDocument).SelectedItemIds) { _lockToken1 = new obj

正在执行一些tfs自动化,并且一直在使用GetWorkItem调用检索WorkItemDocument对象,但是在检索到的workitem上,我在标题中发现了错误。我在哪里可以找到错误的描述,或者它产生错误的原因

_COMPlusExceptionCode=-532462766

我在谷歌上搜索过,没有关于这个例外的定义

foreach (int i in (doc2 as IResultsDocument).SelectedItemIds)
{
    _lockToken1 = new object();
    IWorkItemDocument widoc = docsrv2.GetWorkItem(tfscoll, i, _lockToken1);
    if (widoc == null) continue;

    Debug.Print("Project name: {0}", widoc.Item.Project.Name);
    if (!widoc.IsLoaded) // Does not load and errors
    {

谢谢

现在可以用了,谢谢!它是循环中对象的资源锁,不允许加载第二个或多个项。在每次迭代中,我现在都会正确地释放和处理锁,在任何退出迭代场景中也是如此。需要一个卑鄙的人,但现在它工作得很好

//...
//...
foreach (int i in (doc2 as IResultsDocument).SelectedItemIds)
{
    _lockToken1 = new object();
    IWorkItemDocument widoc = docsrv2.GetWorkItem(tfscoll, i, _lockToken1);
    if (widoc == null) continue;

    if (!widoc.IsLoaded)
    {
        widoc.Load();
        DateTime startTime = DateTime.Now;
        while (!widoc.IsLoaded && DateTime.Now.Subtract(startTime).TotalSeconds <= 2.0)
        {
            Application.DoEvents();
        }
        //...
        //...
        //...
    }
    widoc.Item.Close();
    widoc.Release(_lockToken1);
    //...
//...
/。。。
//...
foreach(int i in(文档2作为IResultsDocument)。选择EditEmids)
{
_lockToken1=新对象();
IWorkItemDocument widoc=docsrv2.GetWorkItem(tfscoll,i,_locktoke1);
如果(widoc==null)继续;
如果(!widoc.IsLoaded)
{
widoc.Load();
DateTime startTime=DateTime.Now;

而(!widoc.IsLoaded&&DateTime.Now.Subtract(startTime).TotalSeconds谢谢。仍然深入挖掘,作为一个常规异常,仍然无法为我指明正确的方向。我拥有对工作项/项目的权限,因此需要检查的另一件事是,当加载第二个工作项时,由于锁失败,我使用
语句或调用
.Close()
.Dispose()
,在COM异常情况下,始终是一个常见选项。。。