Я разработал веб-API ASP.NET. Я пытаюсь прочитать содержимое файла excel и попытаться вернуть его в виде байтов. Я получаю следующую ошибку:Процесс не может получить доступ к файлу XXX, потому что он используется другим процессом в asp.net web api
The process cannot access the file 'C:\app\MyHost.AppServices\bin\Debug\temp\888.xlsx' because it is being used by another process.
Я использую код ниже. Я не уверен, что вызывает эту ошибку. Просьба представить свои предложения
public class FileController : MyBase
{
public HttpResponseMessage Get(string id)
{
if (String.IsNullOrEmpty(id))
return Request.CreateResponse(HttpStatusCode.BadRequest);
var path = Path.Combine("temp", id);
var fileStream = File.Open(path, FileMode.Open);
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
//response.Content = new StreamContent(fileStream);
response.Content = new StreamContent(new FileStream(path, FileMode.Open, FileAccess.ReadWrite));
response.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment");
response.Content.Headers.ContentDisposition.FileName = id;
return response;
}
}
Ваша переменная fileStream не используется, и при создании экземпляра StreamContent вы создаете также новый экземпляр FileStream, который не удаляется. – Giedrius