Question

J'essaie d'ouvrir un fichier InfoPath 2007 par programme à partir d'un service Windows, mais le message d'erreur suivant s'affiche:

  

System.Runtime.InteropServices.COMException   (0x80043000): InfoPath ne peut pas ouvrir le   fichier suivant: C: \ path \ datafile.xml.   Pas assez de stockage est disponible pour   terminer cette opération.

Ce fichier s'ouvre correctement dans le concepteur InfoPath. Il s'exécute également par programme en tant qu'application WinForms. Mais lorsque vous essayez de vous lancer en tant que service Windows, cela explose.

J'ai consulté le puissant Google. Les deux principaux résultats obtenus sont soit un XML mal formé (pas la cause, le formulaire s’ouvrant correctement manuellement), soit un problème d’accès à une base de données (ce que je ne fais pas).

Quelqu'un sait-il comment faire cela? Dois-je définir des autorisations sur le service?

Mise à jour:

Conformément à la demande de Anders, voici le code. Notez que ce n'est peut-être pas le code exact sur lequel je travaillais il y a 6 mois lorsque j'ai initialement posté la question. Nous avons depuis utilisé XtraReports, car il semble beaucoup plus facile de travailler avec et contient moins de ces erreurs cryptiques. Je souhaiterais toutefois résoudre cette question pour toute autre personne qui aurait besoin d’une réponse.

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 { }
}
Était-ce utile?
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top