Назад | Перейти на главную страницу

IIS: запрос с неизвестным типом содержимого отклонен

У меня есть IIS7.5, на котором запущено приложение asp.net mvc 3. Приложение получает двоичные запросы POST и возвращает двоичный ответ. Чтобы отличить эти двоичные данные от всех других пакетов, я установил свой собственный mime-тип (назовем его приложение / my.binary.data), который я использую вместе с Тип содержимого заголовок.

IIS-серверу не нравится мой собственный mime-тип, и он отклоняет пакет с ошибка 400, неверный запрос. Если я изменю тип пантомимы на приложение / октет-поток он проходит через IIS, и я получаю ответ от своего приложения.

Как настроить IIS, чтобы разрешить мой собственный MIME-тип для запросов?

Запросить пакет

POST http://my.local.domain/Page  HTTP/1.1
Host: my.local.domain
Content-Length: 33
Content-Type: application/my.binary.data
Cache-Control: no-cache

..............p.00000000000000...

Пакет ответа:

HTTP/1.1 400 Bad Request
Cache-Control: private
Content-Type: text/html
Server: Microsoft-IIS/7.5
X-AspNetMvc-Version: 3.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Wed, 06 Jul 2011 08:11:27 GMT
Content-Length: 11

Bad Request

Я, наконец, смог решить проблему, следуя следующему руководству на http://www.donnfelker.com/aspnet-mvc-iis7-and-bad-request/.

Я добавил следующий код в свой web.config

<system.webServer>
  <httpErrors errorMode=”Detailed” />
</system.webserver>

Что-то вроде этого блога здесь: http://blogs.iis.net/bills/archive/2008/03/25/how-to-add-mime-types-with-iis7-web-config.aspx может пролить свет на то, что вам нужно делать.

В основном это обновление настроек статического содержимого в ваших приложениях web.config, чтобы IIS7.5 знал о вашем собственном типе MIME.