Nie można uzyskać dostępu do pliku, ponieważ jest używany przez inny proces
Moja metoda internetowa tworzy plik pdf w moim folderze% temp% i to działa. Następnie chcę dodać kilka niestandardowych pól (meta) do tego pliku, używając poniższego kodu.
KlasaPdfStamper
generujeIOException
, czy używam jej.Close()
metoda lubusing
blok właśnie się kończy. Procesem, który wciąż trzyma się uchwytu pliku, jest sam serwer WWW webdev (debuguję w VS2010 SP1).
private string AddCustomMetaData(string guid, int companyID, string filePath)
{
try
{
PdfReader reader = new PdfReader(filePath);
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
{
PdfStamper st = new PdfStamper(reader, fs);
Dictionary<string, string> info = reader.Info;
info.Add("Guid", guid);
info.Add("CompanyID", companyID.ToString());
st.MoreInfo = info;
st.Close();
}
reader.Close();
return guid;
}
catch (Exception e)
{
return e.Message;
}
}
Bez względu na to, co spróbuję, nadal rzuca wyjątekst.Close();
, być bardziej dokładnym:
Proces nie może uzyskać dostępu do pliku 'C: Użytkownicy [moja nazwa użytkownika] AppData Lokalny parametr 53b96eaf-74a6-49d7-a715-6c2e866a63c3.pdf', ponieważ jest używany przez inny proces.
Albo przeoczę coś oczywistego, albo problem zPdfStamper
klasa jestem jeszcze nieświadoma. Użyte wersje itextsharp to 5.3.3.0 i 5.4.0.0, problem jest taki sam.
Każdy wgląd zostałby bardzo doceniony.
EDYTOWAĆ: Obecnie „koduję” ten problem, ale nie znalazłem żadnego rozwiązania.