代码之家  ›  专栏  ›  技术社区  ›  Jason Z

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

  •  0
  • Jason Z  · 技术社区  · 17 年前

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

    (0x80043000):InfoPath无法打开 以下文件:C:\path\datafile.xml。 没有足够的存储空间供用户使用

    此文件在InfoPath designer中正确打开。它还作为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 { }
    }
    
    1 回复  |  直到 16 年前
        1
  •  0
  •   Community Mohan Dere    8 年前