Frage

Ich versuche, eine InfoPath 2007-Datei programmatisch von einem Windows-Dienst zu öffnen, aber ich bekomme die folgende Fehlermeldung:

  

System.Runtime.InteropServices.COMException   (0x80043000): InfoPath kann das nicht öffnen   folgende Datei: C: \ Pfad \ datafile.xml.   Ist nicht genügend Speicher zur Verfügung   Ergänzen Sie diesen Vorgang.

Diese Datei öffnet korrekt im InfoPath Designer. Es läuft auch programmatisch als WinForms-Anwendung. Aber wenn Sie versuchen, als Windows-Dienst ausgeführt werden, es explodiert.

Ich habe den mächtigen Google konsultiert. Die beiden wichtigsten Ergebnisse, die zurück kommen, sind entweder fehlerhaft XML (nicht die Ursache, wie das Formular korrekt manuell geöffnet) oder etwas mit dem zu tun versuchen, auf eine Datenbank zuzugreifen (was ich tue nicht).

Wer weiß, wie dies zu tun? Gibt es Berechtigungen ich auf den Dienst einstellen müssen?

Update:

Wie pro Anders Wunsch, hier ist der Code. Beachten Sie, dass dies nicht den genauen Code sein kann, ich wurde mit 6 Monaten zu arbeiten, als ich ursprünglich die Frage gepostet. Wir haben seit XtraReports wechselte zu verwenden, da es viel einfacher scheint, mit zu arbeiten und hat weniger dieser kryptischen Fehler. Ich würde aber gerne diese Frage für jemanden anderes zu lösen, die entlang kommen und kann eine Antwort benötigen.

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 { }
}
War es hilfreich?
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top