Bonjour,
Je génère un Document Word (Docx avec l'OpenXmlSDK) sur un site en ASP.NET - C# avec la fonction ci-dessous.
Lors du clique sur un bouton, j'exécute ma fonction. Elle créé mon fichier sur le disque et l'envoi par mail. Ensuite si juste ensuite je reclique sur le même bouton, j'obtiens d'erreur suivante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public void GenerateWordDoc(String filename, String societe) { using (WordprocessingDocument wordDoc = WordprocessingDocument.Create(filename, DocumentFormat.OpenXml.WordprocessingDocumentType.Document)) { wordDoc.PackageProperties.Title = String.Format("Fiche synthèse - {0}", societe); wordDoc.PackageProperties.Creator = @"http://MySite"; MainDocumentPart mainDocumentPart = wordDoc.AddMainDocumentPart(); mainDocumentPart.Document = GenerateMainDoc(); SetSectionProperty(mainDocumentPart); //wordDoc.Close(); //wordDoc.Dispose(); } }
Dans ma fonction j'ai décommenter les méthodes Close et Dispose pour tester si cela résout le problème et la réponse est non.Le processus ne peut pas accéder au fichier 'C:\Temp\Fiche_synthese_xxxx.docx', car il est en cours d'utilisation par un autre processus.
Mon fichier est toujours en cour d'utilisation par le Thread utilisé par le site je suppose. Même si les ressources sont censées être libérées à la fin du unsing...
J'ai pensé et tenté de création un Thread séparé pour la création du fichier mais cela n'a pas fonctionner.
Comment pensez-vous que je puisse résoudre ce bug?
Merci d'avance.
Partager