У меня есть служба WCF, размещенная в IIS, эта служба генерирует XML-файл, используя следующий код:
XmlSerializer serializer = new XmlSerializer(typeof(Batch));
using (TextWriter textWriter = new StreamWriter(ConfigurationManager.AppSettings["SFTPDirectoryPath"] + "\\" + bundle.Name.Replace("dat", "xml")))
{
serializer.Serialize(textWriter, batch);
textWriter.Close();
}
После записи файла XML на диск, если я пытаюсь изменить содержимое файла ИЛИ, если я пытаюсь удалить файл, я получаю сообщение об ошибке, что файл используется другим процессом, закройте все программы используя файл. Я скачал приложение под названием «ofview», которое показывает, какой процесс держит дескриптор файла и блокирует его. Это показывает, что aspnet_wp удерживает блокировку файла XML. ofview позволяет мне освободить этот дескриптор, тогда я могу изменить файл или удалить его.
Мой вопрос: как я могу освободить дескриптор программно, как только я закончу писать файл в своем коде? Я что-то пропустил? Спасибо за вашу помощь.