从SharePoint工作流运行Word

时间:2009-03-12 14:23:03

标签: .net sharepoint interop workflow ms-word

基于Join MS Word documents我制作了一个控制台应用程序,将多个word文件拼接成一个。现在我想从SharePoint中的工作流中执行相同的操作。简而言之,我失败前的代码看起来像这样:

object oMissing = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Word.ApplicationClass oWord = new Microsoft.Office.Interop.Word.ApplicationClass();
Microsoft.Office.Interop.Word._Document oDoc = null;
oWord.Visible = false;
Microsoft.Office.Interop.Word.Documents oDocs = oWord.Documents;
object oFile = tmpFileName;
oDoc = oDocs.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing);
oDoc.Activate();

当我到达oDoc.Activate()时,我抛出了以下异常,即使我只有一个工作流实例在运行,而且服务器上没有运行其他Word实例:

消息过滤器指示应用程序正忙。 (来自HRESULT的异常:0x8001010A(RPC_E_SERVERCALL_RETRYLATER))

为什么我会收到此错误?是什么让应用程序忙?

干杯

的Nik

2 个答案:

答案 0 :(得分:0)

Office应用程序不是为在服务器环境中运行而构建的 - 它们纯粹是桌面应用程序。不要从服务器上调用它们。

答案 1 :(得分:0)

如果它们是Word 2007文档,我认为您应该查看Word文件格式,看看Microsoft的文章是否有帮助:

http://msdn.microsoft.com/en-us/library/bb656295.aspx

Office Interop总是有点不稳定,在服务器上运行它是我建议的最后一件事,除非没有其他方法可以做到。

在Sharepoint环境中,也许Document Converters可以以某种方式提供帮助,虽然我对它们没有经验 - 只是暗示要看的东西。