Domanda

Sto provando ad aprire un file di InfoPath 2007 a livello di codice da un servizio di Windows, ma ottengo il seguente errore:

  

System.Runtime.InteropServices.COMException   (0x80043000): InfoPath non può aprire   file seguente: C: \ path \ datafile.xml.   Non è disponibile memoria sufficiente per   completa questa operazione.

Questo file si apre correttamente nella finestra di progettazione di InfoPath. Funziona anche a livello di codice come un'applicazione WinForms. Ma quando si tenta di eseguire come servizio di Windows, esplode.

Ho consultato il potente Google. I due risultati principali che vengono restituiti sono XML non valido (non la causa, poiché il modulo si apre correttamente manualmente) o qualcosa a che fare con il tentativo di accedere a un database (cosa che non sto facendo).

Qualcuno sa come farlo? Ci sono autorizzazioni che devo impostare sul servizio?

Aggiornamento:

Come da richiesta Anders, ecco il codice. Nota che questo potrebbe non essere il codice esatto con cui stavo lavorando 6 mesi fa quando ho pubblicato la domanda. Da allora siamo passati all'utilizzo di XtraReports, poiché sembra molto più facile lavorare con e ha meno di questi errori criptici. Vorrei, tuttavia, risolvere questa domanda per chiunque si presenti e potrebbe aver bisogno di una risposta.

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 { }
}
È stato utile?
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top