2015-04-02 7 views
0

Я пытаюсь настроить урезанный веб-сервер, который передает все URL-запросы через один IHttpHandler, вместо того, чтобы пытаться сопоставить URL-адрес с файловой структурой сервера.Как обрабатывать все запросы с помощью IHttpHandler?

У меня есть IHttpHandler там, наряду с некоторыми пользовательских модулей, и они в ответ, как и ожидалось, когда я иду прямо к моему домену, но если я получить доступ к сайту через что-то вроде:

http://mysite/some/random/url 

Я получаю ошибку 404 файла, не найденную.

бы я предполагал, удаляя один из этих модулей, вероятно, накройте его:

 <remove name="UrlRoutingModule-4.0" /> 
     <remove name="UrlMappingsModule" /> 
     <remove name="FileAuthorization" /> 
     <remove name="UrlAuthorization" /> 

Но IIS все еще пытается соответствовать URL-адресов в файловой структуре сервера. С тех пор я удалил каждый модуль, который я не использую, и он все еще возвращает 404.

Я на самом деле делал это раньше, но я не могу вспомнить или найти в Интернете, как я его работаю.

Я сейчас в основном из идей - кто-нибудь?

+1

runAllManagedModulesForAllRequests http://stackoverflow.com/questions/11048863/modules-runallmanagedmodulesforallrequests-true-meaning - большая часть головоломки. –

+0

Ах да, спасибо - я помню, теперь я определенно должен был использовать это раньше, чтобы заставить его работать. Однако использование этого не разрешило проблему. – Octopoid

+1

Если вы хотите, чтобы веб-сервер с незащищенным слоем, вы должны изучить ['Microsoft.Owin.SelfHost'] (http://www.nuget.org/packages/Microsoft. Owin.SelfHost /) ... –

ответ

0

Я добавил runAllManagedModulesForAllRequests в соответствии с предложением от @Alexei Levenkov. Хотя я помню, что определенно нужно было это сделать, он не сразу решил это. После долгих споров я обнаружил, что IIS установил:

resourceType="Either" 

на обработчике. Я протестировал его изменение на «Файл», и проблема была исправлена ​​для URL-адресов типов файлов, но, разумеется, не «стилевых» папок. Изменение его на:

resourceType="Unspecified" 

Исправлена ​​ошибка для всех URL-адресов.

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