На сайте asp.net mvc 5, размещенном на сервере windows 2012, у меня есть некоторые статические файлы jpg в папке в структуре папок веб-сайта (/Files/1.jpg и т. Д.), что я хотел бы, чтобы конечная точка api (GetPicture) могла служить.Разрешить вызов asp.net mvc api для доступа к файлам
api использует базовую аутентификацию с токеном в заголовке аутентификации.
На моей машине dev (vs2013, IIS Express) api отлично обслуживает файлы jpg.
Однако, когда я вызываю конечную точку api (api/v1/GetPicture/5) на тестовом/производственном сервере, я получаю http-код 500 (UnauthorizedAccessException) и сообщение об ошибке: «Доступ к пути xxx отказано".
Пользователь аутентифицируется в вызове api.
АНИ вызов:
GET https://app.domain.com/api/v1/GetPicture/5 HTTP/1.1
Host: app.domain.com
Content-Type: application/json; charset=utf-8
Content-Length: 49
Authorization: Token 506b38df-947e-45a8-b2a0-49aa01e9a6f9
Конец апи точка:
[Route("GetPicture/{id:int}")]
[HttpGet]
public HttpResponseMessage GetPicture()
{
...
...
var result = new HttpResponseMessage(HttpStatusCode.OK);
var stream = new FileStream(path, FileMode.Open);
result.Content = new StreamContent(stream);
result.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("image/jpeg");
result.Content.Headers.ContentDisposition =
new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment")
{
FileName = file.FileName
};
return result;
...
...
}
Я предполагаю: - что это проблема IIS или файловая система настройки безопасности или - что изображения должны быть перенесены в App_Data -?
Папка/Files/является частью структуры папок веб-сайта, поэтому идентификатор пула приложений уже должен иметь доступ к файлам в папке – mortenma71