Как программно открыть файл InfoPath 2007 из службы? - PullRequest
0 голосов
/ 19 ноября 2008

Я пытаюсь открыть файл 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 { }
}

1 Ответ

0 голосов
/ 29 июля 2009
...