У меня есть 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.