2015-04-02 19 views
0

我試圖設置一個精簡的web服務器,它將所有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是拼圖的重要組成部分。 – 2015-04-02 19:38:07

+0

啊,是的,謝謝 - 我記得現在我肯定不得不使用它以前得到它的工作。但是,單獨使用它並不能解決問題。 – Octopoid 2015-04-02 19:40:54

+1

如果您想要一個_really_剝離的網絡服務器,您應該查看['Microsoft.Owin.SelfHost'](http://www.nuget.org/packages/Microsoft。 Owin.SelfHost /)... – 2015-04-02 23:15:04

回答

0

我按照@Alexei Levenkov的建議添加了runAllManagedModulesForAllRequests。雖然我記得肯定需要這樣做,但並沒有立即解決它。經過大量的討論後,我發現IIS已經設置了:

resourceType="Either" 

處理程序上。我測試了將其更改爲「文件」,並且該問題已針對文件類型的URL進行了修復,但當然不是文件夾「風格」的文件夾。更改爲:

resourceType="Unspecified" 

修復了所有URL的問題。