2009-10-14 55 views
4

我想要實現:asp.net HttpModule可以將請求轉發給asp.dll嗎?

使用一個asp.net應用程序.asp文件攔截請求
然後重新寫入網址的東西搜索引擎友好
然後請求傳遞到該asp.dll來處理請求。

如何我試着去acheive它:

我試圖通過

  1. 更改IIS映射的網站,這樣的.asp得到intelligencia URL重寫了傳統的ASP應用程序的工作擴展由asp.net應用程序處理。
  2. intelligencia asp.net url re-writer然後重寫URL。
  3. 然後將請求的.asp頁面轉發到asp.dll進行處理。這一點可以完成嗎?有任何想法嗎?

我的侷限性:

  • 共享託管帳戶,所以我不能在服務器上安裝ISAPI篩選器。

聽起來像是可以通過編寫HTTPModule來完成的事情嗎?

我已經考慮過301重定向,而是擔心谷歌排名問題。

+0

我認爲你的意思是「301重定向」。 – womp 2009-10-14 15:49:56

+0

IIS版本在這裏很關鍵。 – AnthonyWJones 2009-10-14 15:56:39

+0

@AnthonyWJones Windows 2003 Server iis版本6. – Rich 2009-10-14 16:48:41

回答

2

由於管道的工作方式,.NET HttpModule無法將請求轉發到II6中的經典ASP。當您的.NET模塊執行時,您處於ASP.NET處理程序中,並且無法傳輸到ASP處理程序。

IIS7具有集成管道,這將允許您將.NET HttpModule重新將請求寫入經典ASP處理程序。

你可以有一個自定義的404處理程序,從響應中清除404狀態,並執行Server.Transfer或Server.Execute頁面。唯一的問題是你不能傳遞查詢字符串參數,所以你的頁面需要解析請求並手工取出變量。

我使用修改後的版本Smart404來處理搜索引擎優化友好的網址,移動的文件等。他們稱之爲「virtual_aliases」功能。

+0

謝謝邁克。我得出的結論是,它不適用於我的設置。很高興知道如果需要的話,我可以在IIS 7中採用這種方式。 – Rich 2009-10-30 16:42:44