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.

questionAnswers(4)

yourAnswerToTheQuestion