2010-01-15 53 views
2

這是關於在開發環境中處理URL重寫的一般問題。我正在開發CMS來學習ASP.NET/C#,我當然需要實現URL重寫。這個技術是我知道的,因爲我已經使用PHP好幾年了。但是,在PHP中,您可以擁有本地HTTP服務器,直接修改PHP內容,刷新頁面並查看結果。當然,在ASP.NET中它不完全一樣,因爲你需要編譯然後發佈代碼。ASP.NET/URL在開發環境中重寫

我的問題是,我需要檢查我的代碼將在我的開發環境中生成的URL重寫友好鏈接 - 基本上,使ASP.NET開發服務器與URL重寫兼容。或者可能不是。

我的問題確實是:最好的解決方案是什麼?使用IIS/Apache2(w/Mono)作爲開發服務器?

回答

0

如果你正在開發,我會猜測你是在Windows上做的。 Mono和Linux/Apache的主機數量相當渺茫,因此最好使用IIS的方式處理事務。

對於IIS VISTA/Windows 7中你有多種選擇

  • 許多HTTP module爲ASP.NET One URL rewrite - 這個作品非常好,如果你只想要rewritting在ASP.NET頁面。您也可以事實上映射其他文件類型,因爲IIS 7爲IIS更改了
  • A URL rewriter ISAPI extension - 比使用ASP.NET更快,如果您使用mod_rewrite更爲熟悉。
  • ASP.NET MVC得到一些即時結果。

Scott Guthrie有一個很大的帖子,this question會幫助很多。

2

只需在本地計算機上啓用IIS,然後創建一個網站並將其指向您網站的項目目錄。如果你問我,那是最簡單的方法。

1

由於klausbyskov states,你確實可以設置IIS你開發機器上工作,直接在那裏:

根據您的平臺,它可能是最容易讓你的項目文件在IIS中的wwwroot文件夾下,然後創建一個指向該網站的新網站,或者確保您已將其配置爲IIS中的應用程序。只要告訴Visual Studio在項目屬性中使用「本地IIS Web服務器」即可。然後你可以使用類似IIS Url Rewrite Module的東西來執行你的路由。

另一種選擇是添加對.NET 3.5 SP1中引入的System.Web.Routing庫的引用 - 有一個number of tutorials out on the web將其用於Web表單而不是MVC。這樣做的好處是您可以使用路由引擎中的工具來正確生成鏈接,並知道它們將被服務器正確處理 - 通常不會從IIS模塊獲得的東西,其中你會自己生成鏈接,並且必須確保模塊以相同的方式配置。

0

如果您將項目配置爲「Web站點」而不是「Web應用程序」,那麼當服務器發生更改時,Web服務器將自動爲您編譯所有內容;除非要更改項目使用的DLL中的代碼,否則不必進行顯式編譯。

雖然這比使用Cassini的本地IIS實例更容易,但是,因爲Cassini在檢測更改和強制重新啓動方面似乎做得不太好。