Как открыть файл InfoPath 2007 программно из сервиса?
-
08-07-2019 - |
Вопрос
Я пытаюсь открыть файл InfoPath 2007 программно из службы Windows, но я получаю следующую ошибку:
Система.Среда выполнения.Службы взаимодействия.COMException (0x80043000):InfoPath не удается открыть следующий файл:C:\path\datafile.xml .Недостаточно памяти для завершения этой операции.
Этот файл корректно открывается в InfoPath designer.Он также запускается программно как приложение 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 { }
}
Решение