Обслуживаемое изображение ashx плохо отображается в IIS 8

Я разработал простую службу ashx, которая извлекает изображения из далекой-далекой системы и отображает их в приложении .net. Все отлично работает в разработке, которая должна быть идентична производственной среде, поэтому это похоже на ошибку конфигурации.

Страница, на которой реализовано изображение, также возвращает это сообщение в окне журнала.

Ресурс интерпретируется как изображение, но передается с типом MIME text/html

В производстве

введите здесь описание изображения

В развитие

введите здесь описание изображения

Кроме того, код и web.config и подобные в средах идентичны. Я даже скопировал все дерево разработки и запустил его на сервере разработки с точно таким же результатом.

Моя реализация выглядит так

<system.webServer>
  <validation validateIntegratedModeConfiguration="false" />
  <handlers accessPolicy="Read, Write, Script, Execute">
    <remove name="SPImage" />
    <add name="SPImage" verb="GET" path="SPImage.ashx" type="Web.Business.Handlers.SPImage, Web" />
  </handlers>
</system.webServer>

И обработчик

namespace Web.Business.Handlers
{
    public class SPImage : IHttpHandler
    {
        public bool IsReusable { get { return true; } }

        public void ProcessRequest(HttpContext context)
        {
            Guid imageGuid;
            if (!Guid.TryParse(context.Request.QueryString["id"], out imageGuid))

            // Get user
            var user = aspnet_MembershipController.Read<aspnet_MembershipListModel>(context.User.Identity.Name);

            // Get requested image
            var image = GalleryListController.ReadImage<IGalleryPicture>(user.ID, imageGuid);
            byte[] file = DownloadProcedureController.Download<byte[]>("gallerier", image.Webimage);

            int width = 270;
            int height = 180;

            // Return image in scaled format
            var stream = new MemoryStream();
            var settings = new ResizeSettings(string.Format("width={0};height={1};format=jpg;quality={2};mode=crop", width, height, 100)) {};
            // ...process the image
            new ImageResizer.ImageJob(file, stream, settings).Build();

            HttpResponse httpResponse = context.Response;
            httpResponse.ContentType = "image/jpeg";
            //httpResponse.CacheControl = "no-cache";
            httpResponse.BufferOutput = false; //Stream the content to the client, no need to cache entire streams in memory...
            httpResponse.BinaryWrite(stream.GetBuffer());
            httpResponse.End();

        }
    }
}

Кто-нибудь признает это?

Спасибо


person Eric Herlitz    schedule 19.09.2013    source источник


Ответы (1)


Это был сбой в ImageReziser, когда качество было установлено неправильно. Отсюда и сжатый результат. Исправлено обновлением ImageRezising.net

person Eric Herlitz    schedule 19.09.2013