Я пытаюсь открыть файл InfoPath 2007 программно из службы Windows, но я получаю следующую ошибку:
System.Runtime.InteropServices.COMException
(0x80043000): InfoPath не может открыть
следующий файл: C: \ path \ datafile.xml.
Недостаточно памяти для
завершите эту операцию.
Этот файл правильно открывается в конструкторе InfoPath. Он также запускается программно как приложение WinForms. Но когда вы пытаетесь запустить службу Windows, она взрывается.
Я посоветовался с могущественным Google. Два основных результата, которые возвращаются, это либо неверно сформированный 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 { }
}