2015-11-18 3 views
1

У меня есть сайт Nancy, размещенный на ASP.Net с несколькими пользовательскими маршрутами. Эти маршруты включают сопоставления, которые выглядят как пути к файлам (например, /path/to/xml_file.xml), но это разрешение на файлы HTML, которые должны отображаться в браузере. Для большинства файлов это работает правильно. Тем не менее, с XML-файлов (и, возможно, другие типы MIME), я получаю сообщение об ошибке 406,0 HTTP из IIS 8 Экспресс явно о том, чтоКак обойти проверку заголовка Accept в IIS?

Ошибка HTTP 406.0 - Не Приемлемый

Ресурс не может быть отображена, так как расширение вашего файла не поддерживается вашим браузером.

Запрос отклонен, поскольку в нем содержится заголовок Accept для типа MIME, который не поддерживается для запрашиваемого расширения файла.

Проверьте настройки MIME для расширения файла, которое было запрошено, чтобы убедиться, что этот тип MIME является приемлемым.

406 Error Page Screenshot

Есть ли установка web.config или другой метод для обхода этой проверки, так что я не получаю эту ошибку без необходимости переписывать логику пути? Мой поиск в Google не позволяет мне. Например, я нашел this IIS forum post связан с SO Answer который говорит о

карту все reqests в ASP.NET и использовать StaticFileHandler ASP.NET, чтобы служить им

Однако пост не объясняет как это сделать; и это не кажется применимым.

Edit: (Добавлена ​​ошибка загрузки страницы изображение выше)

В другой лакомый, Нэнси маршрут возвращается явный вид формы

return View["view_name", myModel]; 

И поэтому должны обойти согласование содержания.

+0

Вы проверили, если.xml специфичен как тип mime в IIS? – DinoMyte

+0

@DinoMyte Как указано в комментарии к ответу нашего пользователя, я играл с разными сопоставлениями в файле web.config безрезультатно. – erdomke

ответ

2

Пока не исправить или ответить по существу, моя текущая работа вокруг (для тех, кто может быть заинтересован), чтобы настроить маршруты для используйте конечную косую черту. В качестве примера:

"/path/to/xml_file.xml" // Still returns a 406.0 error 
"/path/to/xml_file.xml/" // Works properly (notice the trailing slash) 
1

Вот ссылка на центр знаний Rackspace, который показывает, как изменить MIME-сопоставление для статического содержимого в файле web.config.

https://www.iis.net/configreference/system.webserver/staticcontent/mimemap

Там также это один из МС, более углубленные.

https://www.iis.net/configreference/system.webserver/staticcontent/mimemap

Они оба имеют эту строфу из файла web.config.

<configuration> 
    <system.webServer> 
    <staticContent> 
     <remove fileExtension=".extension" /> 
     <mimeMap fileExtension=".extension" mimeType="application/example" /> 
    </staticContent> 
    </system.webServer> 
</configuration> 

Если это, как на самом деле исправить 406,0 проблему ...

+0

Не повезло с этим. '' не остановил ошибку, а также ' ", который у меня был ранее. – erdomke

+0

@erdomke Вы можете попробовать эту [настройку конфигурации] (https://github.com/NancyFx/Nancy/wiki/Managing%20static%20content#letting-iis-handle-static-content), чтобы остановить Nancy от обработки XML-файлов , – ourmandave

+0

@erdomke Также в нижней части (эта страница) [https://github.com/NancyFx/Nancy/wiki/View-engines] это предложение. 'В рамках нового [Консолидация контента] (https://github.com/NancyFx/Nancy/wiki/Content%20Negotiation) функции в 0.12, если Нэнси не удалось найти ваше представление, сервер вернет 406 Not Acceptable. 'Может быть, включить трассировку и посмотреть, что она не находит? – ourmandave

Смежные вопросы