国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

使用HttpHanlder處理404:File not found的問題

2020-01-24 03:26:50
字體:
來源:轉載
供稿:網友

一:場景

出于某種理由,需要由asp.net引擎處理所有可能出現的無效URL的Request。

二:現狀

對于無效URL,一般會由IIS返回404錯誤。當然,也可以自定義Custom Error Page,但是在這種情況下,并不能處理原URL所代表的Request的數據(如表單數據)。或許我們想直接在Application_BeginRequest中處理該請求,但是,如果我們的IIS已經處理了“Verify that file Exists”,則實際上該請求根本不會被Application_BeginRequest命中(Fire)。

三:解決方案

1:準備好web.config,進行如下配置:

復制代碼 代碼如下:

<location path="FolderTest">
  <system.web>
    <httpHandlers>
      <add verb="*" path="*" type="YourNamespace.YourHandler"/>
    </httpHandlers>
  </system.web>
  <system.webServer>
    <handlers>
      <add name="testyou" verb="*" path="*" type="younamespace.youHandler" resourceType="Unspecified"/>
    </handlers>
  </system.webServer>
</location>

有幾點需要說明:

1)熟悉system.web和system.webServer的朋友一定知道,后者是針對iis7及以上的集成模式的配置項,如果不滿足此宿主條件,則IIS會自動忽略此配置,采用前者的配置節點。

2)經過此配置后,iis7及以上的集成模式的站點已經能夠處理FolderTest路徑下的所有404 Request了。

3)resourceType="Unspecified",是用來處理標示處理所有請求的,包括file and folder等等,如果我們處理的是文件url,則不需要此配置屬性。

4)path=”*”,表明這是一個wildcard httphandler。

5)如果我們不是要處理子目錄下所有請求,如上文配置中的FolderTest,而是要處理根目錄下的所有404請求,則去掉location配置節。

2:現在來處理iis7及以上的集成模式的情況

比如,不幸我們還在使用II6,則應該在IIS中配置“Verify that file Exists”為非構選狀態。以iis6為例,我們可進行如下操作:

1:)打開站點配置節點 

IIS Web Site Properties Dialog

點擊Configuration之。

2:)然后,在出現的界面中的下半部分,即“Wildcard application maps”部分,點擊“Insert”,出現如下圖:

IIS Wildcard Application Extension Mapping Dialog

把aspnet_isapi.dll配置進去,然后不要鉤選“Verify that file exists”,OK之。 

至此,整個世界清靜了。你可以在你的HttpHandler中處理任何想要的Request的數據了,比如表單數據,哪怕客戶端提交的是一個不存在的URL。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南乐县| 溧阳市| 兴城市| 柳州市| 龙泉市| 双桥区| 石台县| 许昌县| 台州市| 宁化县| 长宁区| 镶黄旗| 通辽市| 丰台区| 深州市| 鄂温| 德保县| 闵行区| 河南省| 赞皇县| 策勒县| 安义县| 高陵县| 天门市| 乳山市| 乌拉特中旗| 确山县| 民丰县| 凤城市| 甘洛县| 赞皇县| 桃园市| 聂荣县| 永丰县| 磐安县| 延长县| 特克斯县| 南城县| 靖宇县| 南康市| 成武县|