0

我有一种情况,每当在 Sharepoint 库中保存新文档(新文档 > 另存为)时,自定义事件处理程序 (ItemAdded) 都会触发文档记录的更新并填充一些列值。该文档也以编程方式签入。这些更改从 word interface 中仍然是不可见的,因为它在后端触发。我需要从服务器关闭并重新打开文档,以便它以所有服务器属性和正确的签出状态打开。我正在使用以下代码来关闭和打开:

    Word._Document doc = this.Application.ActiveDocument;
    doc.Close(Word.WdSaveOptions.wdDoNotSaveChanges, System.Type.Missing, System.Type.Missing);
    Word.Document aDoc = this.Application.Documents.Open(docPath, System.Type.Missing, true, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, true, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing);
    aDoc.Activate();

该文档关闭正常,但应用程序在打开时崩溃。但是,如果我只从代码中关闭文档并手动从最近的文件列表中打开文档,则文档可以正常打开。在打开文档之前我需要做一些清理工作吗?

请注意,我已经使用 DocumentBeforeSave 事件 (Cancel=true) 覆盖了 word 的默认保存操作。不确定这是否是相关信息。

编辑:我试图捕捉上面的块是否抛出任何 COMException 或任何类型的异常,但它没有。它只是在 open 语句上崩溃。

4

1 回答 1

0

尝试使用以下内容:

        (new Thread(() =>
        {
            doc.Close(Word.WdSaveOptions.wdDoNotSaveChanges, System.Type.Missing, System.Type.Missing);

        })).Start();
于 2013-06-13T15:07:07.600 回答