У меня есть проект ASP.NET WEB API, который позволяет пользователю загружать изображения, затем эти изображения просматриваются на другой странице.
Изображения успешно загружены;однако некоторые из этих изображений возвращают ОШИБКА СЕРВЕРА 500 при вызове метода GET из мобильного приложения.
Если я скопирую URL-адрес, который возвращает ошибку, и выполню запрос из браузера или почтальона, URL-адрес будет работать правильно, поэтому изображения будут найдены на сервере.
Что может быть причиной того, что URL-адрес не являетсяработает только на мобильном?
Вот код, который возвращает изображение:
[HttpGet]
[Route("Stores/{id}/Photos/{pid}")]
public HttpResponseMessage GetStorePhoto(int id, int pid)
{
using (var db = new ApplicationDbContext())
{
var photo = store.Photos.FirstOrDefault(p => p.Id == pid);
if (photo == null)
return ImageNotFound(); //returns a default image in case image not found
var filePath =
HttpContext.Current.Server.MapPath("~/Uploads/Stores/" + photo.FileName);
if (!File.Exists(filePath))
return ImageNotFound();
var response = new HttpResponseMessage();
response.Content = new StreamContent(new FileStream(filePath, FileMode.Open));
response.Content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
return response;
}
}