我正在尝试从 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 { }
}