FileStream не может получить доступ к файлу, потому что он используется другим процессом

Я новичок в веб-приложении в ASP.NET, и я столкнулся с этой проблемой.

У меня есть страница, где есть кнопка для загрузки файла template.xls, который ранее хранился на странице SharePoint. У меня есть метод загрузки, и этоработает просто отлично. Рассматриваемый шаблон сохраняется в том месте, где он должен быть, в папке, где находится мое веб-приложение, на моем локальном IIS. Проблема заключается в том, чтобы открыть этот файл для конечного пользователя. Мне нужно, чтобы всплывающее окно отображалось пользователю, чтобы он мог открыть / сохранить этот шаблон. Xls I 'используя следующее:

//path on my local IIS where the file is located after the download
string _strFolderApp = "~/Arq/";
string _strFullFolderApp = _strFolderApp + _strFileName;
string apPath = System.Web.Hosting.HostingEnvironment.MapPath(_strFullFolderApp);

FileStream _FileStream = new FileStream(apPath, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
// Writes a block of bytes to this stream using data from a byte array.
_FileStream.Write(_contentFile, 0, _contentFile.Length);

//opens the file
Response.Clear();
Response.AddHeader("content-disposition", "attachment; filename=" + _strFileName);
Response.ContentType = "";
Response.TransmitFile(apPath);
Response.Flush();
File.Delete(apPath);
Response.End();
# endregion

// close file stream
_FileStream.Close();

Я искал в Интернете, и все ответы заканчиваются использованием FileShare.ReadWrite, поэтому оба процесса будут работать правильно. Но это'не работает для меня, потому что, когда код достигаетResponse.TransmitFile (apPath); Я получаю исключение и всплывающее окно нет шоу. Исключение:

Процесс не может получить доступ к файлуC: \ Inetpub \ Wwwroot \ MyWebApp \ File \ TemplateSharePoint.xlsx» потому что он используется другим процессом.

Пожалуйста, любая помощь будет оценена :)

РЕДАКТИРОВАТЬ Обновление кода

if (_flgSPSDownload)
        {
            System.IO.FileStream _FileStream = new System.IO.FileStream(apPath,System.IO.FileMode.Create, System.IO.FileAccess.Write);
            _FileStream.Write(_contentFile, 0, _contentFile.Length);
            _FileStream.Close();


            Response.Clear();
            Response.AddHeader("content-disposition", "attachment; filename=" + _strFileName);
            //Set the appropriate ContentType.
            Response.ContentType = "Application/x-msexcel";
            Response.TransmitFile(apPath);
            Response.Flush();
            //Write the file directly to the HTTP content output stream.
            Response.WriteFile(apPath);
            //File.Delete(apPath);

            //Process.Start(_strDestinationPath + "//" + _strFileName);

Ответы на вопрос(2)

Ваш ответ на вопрос