0

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

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

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

我咨询了强大的谷歌。返回的两个主要结果要么是格式错误的 XML(不是原因,因为表单可以手动正确打开),要么与尝试访问数据库有关(我没有这样做)。

有谁知道如何做到这一点?我需要在服务上设置权限吗?

更新:

根据安德斯的要求,这是代码。请注意,这可能不是我 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 { }
}
4

1 回答 1

0

这对我们有用

于 2009-07-29T10:37:19.873 回答