2012-04-17 38 views
1

我們建立了自己的重定向的HttpHandler接受所有請求(動詞=「*」,路徑=「*」):我們如何通過執行從HTTP處理程序

<system.webServer>   
     <handlers> 
      <remove name="Redirect" /> 
     <add name="staticFileHandler" path="*.html" type="System.Web.StaticFileHandler" verb="GET,HEAD" /> 
     <add name="Redirect" path="*" verb="*" type="RedirectModule.RedirectHandler, 
RedirectModule, Version=1.0.0.0, Culture= neutral, publicKeyToken=77c8b6b494e19eeb" resourceType="Unspecified" preCondition="integratedMode" />   
     </handlers> 
    </system.webServer> 

在HTTP處理程序中,我們有碼如果瀏覽器是移動的,它會檢查URL並重定向。在這種情況下,如果瀏覽器不是移動設備,或者我們已經重定向,我們希望繼續執行靜態文件並顯示其內容。

我們遇到的問題是,因爲我們使用的http處理程序接受所有的請求,StaticFileHandler不處理HTML文件,我們總是得到一個白色的屏幕。

我們如何通過代碼或web.config將執行從httphandler傳遞到staticFileHandler。

感謝任何幫助。

奧裏特

回答

3

處理程序應該只決定如何處理文件擴展名(物理或邏輯的),不。我認爲你的意思是創建一個模塊。

請參閱this回答Jon Galloway和this有關處理程序和模塊的MSDN文章。

編輯:另外,請查看ASP.NET/Mobile的第一個方法。它展示瞭如何在Web窗體和MVC中實現這一點。