中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

isapi_rewrite重寫(xiě)在asp.net4.0+IIS6錯(cuò)誤的解決方法

2018-07-20    來(lái)源:編程學(xué)習(xí)網(wǎng)

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

  使用isapi_rewrie 3.x 對(duì)網(wǎng)站進(jìn)行URL重寫(xiě),環(huán)境為 Asp.net4.0、IIS6.0。

  RewriteRule ^/([a-z0-9_-]+)/$ /Cate.aspx?N=$1 [NC]

  但是在實(shí)踐中一直顯示404錯(cuò)誤。

  原因如下:

  因?yàn)锳SP.NET4.0在安裝的過(guò)程中,已經(jīng)在IIS6做了一些手腳,讓它可以原生的支持的無(wú)后綴的URL請(qǐng)求,那么它究竟是做了什么事情呢?在實(shí)現(xiàn)這個(gè)功能的作者Thomas Marquardt的這篇博客上的一段話解釋了它的工作原理,大概是這樣的:

  ASP.NET 4.0在安裝的時(shí)候,會(huì)在IIS6注冊(cè)一個(gè)ISAPI Filter,叫做”aspnet_filter.dll”,ISAPI Filter會(huì)先于ISAPI處理程序前執(zhí)行,它會(huì)在所有的的無(wú)后綴的URL后面加一串字符“/eurl.axd/GUID”, 同時(shí)ASP.NET 4.0還會(huì)在IIS默認(rèn)添加一個(gè)請(qǐng)求映射規(guī)則“*.axd”,映射到aspnet_isapi.dll。此時(shí),所有的無(wú)后綴URL加上“/eurl.axd/GUID”后都會(huì)變成帶.axd后綴,這樣就匹配*.axd的映射規(guī)則進(jìn)行ASP.NET的處理通道。在進(jìn)入ASP.NET通道后,ASP.NET處理程序會(huì)刪除掉“/eurl.axd/GUID”,讓它還原到無(wú)后綴的原始情況,并且不會(huì)對(duì)后續(xù)的請(qǐng)求處理帶來(lái)任何影響。此時(shí),所有的無(wú)后綴請(qǐng)求,就進(jìn)入了ASP.NET的處理通道中,在默認(rèn)情況下,ASP.NET4.0的全局的web.config中配置了DefaultHttpHandler來(lái)接收無(wú)后綴的URL請(qǐng)求,但是我們也可以隨意更換默認(rèn)處理程序(比如ASP.NET MVC處理程序)來(lái)處理無(wú)后綴的URL請(qǐng)求。

  從上面的解釋中, 我們不難看到,這與IIS7的集成模式有本質(zhì)的不同,它并不是很原生的處理方案。不得不說(shuō),這并不是一個(gè)非常流暢的解決方案,也許這也是不得以之下的非常之舉。但是其實(shí)在沒(méi)有ASP.NET MVC以前,對(duì)無(wú)后綴的URL請(qǐng)求的支持并不是那么迫切需要。即使有需要,也是通過(guò)一個(gè)URL Rewriter組件,而因?yàn)槭紫纫M(jìn)入ASP.NET 處理通道,所以這種URL Rewriter組件也需要ISAPI級(jí)別的擴(kuò)展。當(dāng)我們?cè)贏SP.NET 4.0的程序中,需要用類(lèi)似的組件的時(shí)候,可能就會(huì)需跟上面的功能有所沖突,此時(shí),我們可能就會(huì)需要禁用ASP.NET4.0對(duì)無(wú)后綴URL請(qǐng)求的這個(gè)功能。這時(shí)候你可能修改注冊(cè)表相關(guān)鍵值(并重啟IIS),或者是刪除aspnet_filter.dll的注冊(cè)(因?yàn)樵谶@步增加了/eurl.axd/GUID)。

  解決方法:

  打開(kāi)注冊(cè)表找到“HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\ASP.NET\\4.0.30319.0”,添加鍵值名為“EnableExtensionlessUrls” 類(lèi)型為“DWORD”的鍵值,并設(shè)置值為“0”。然后在cmd中運(yùn)行“IISRESET”,重啟IIS以讀取注冊(cè)表修改后的內(nèi)容。注:此項(xiàng)修改就是關(guān)閉 ASP.NET 4‎.0對(duì)無(wú)擴(kuò)展URL的處理,若將此項(xiàng)鍵值設(shè)為“1”則開(kāi)啟。

標(biāo)簽:

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:關(guān)于aspx.designer.cs

下一篇:三層架構(gòu)與養(yǎng)豬