Как открыть файл InfoPath 2007 программно из сервиса?

StackOverflow https://stackoverflow.com/questions/303325

  •  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 { }
}
Это было полезно?
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top