0

ASP.NET Web API を開発しました。Excel ファイルの内容を読み込もうとして、バイトとして返そうとしています。次のエラーが表示されます:

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;

            }
    }
4

1 に答える 1

3

からファイルを破棄せvar fileStream = File.Open(path, FileMode.Open);ず、ロックしたままにします。

于 2013-10-02T07:05:24.657 に答える