如何从服务以编程方式打开InfoPath 2007文件?

时间:2008-11-19 20:52:15

标签: automation infopath

我正在尝试以编程方式从Windows服务打开InfoPath 2007文件,但是我收到以下错误:

  

System.Runtime.InteropServices.COMException   (0x80043000):InfoPath无法打开   以下文件:C:\ path \ datafile.xml。   没有足够的存储空间可供使用   完成此操作。

此文件在InfoPath设计器中正确打开。它还以编程方式作为WinForms应用程序运行。但是,当您尝试作为Windows服务运行时,它会爆炸。

我咨询过强大的Google。返回的两个主要结果是格式错误的XML(不是原因,因为表单手动正确打开)或者尝试访问数据库(我不会这样做)。

有谁知道怎么做?我需要在服务上设置权限吗?

更新

根据Anders的要求,这是代码。请注意,这可能不是我最初发布问题时6个月前使用的确切代码。我们已经转而使用XtraReports,因为它似乎更容易使用并且具有较少的这些神秘错误。但是,我想为其他出席并可能需要答案的人解决这个问题。

Microsoft.Office.Interop.InfoPath.Application infoApp = new Microsoft.Office.Interop.InfoPath.Application();
try
{
    Microsoft.Office.Interop.InfoPath.XDocument xDoc = null;
    xDoc = infoApp.XDocuments.Open(fileName, (int)Microsoft.Office.Interop.InfoPath.XdDocumentVersionMode.xdUseExistingVersion);

    xDoc.PrintOut();
    infoApp.XDocuments.Close(0);
}
catch (Exception ex)
{
    //handle error here
}
finally
{
    try
    {
        if (infoApp != null)
            infoApp.Quit(false);
    }
    catch { }
}

1 个答案:

答案 0 :(得分:0)