在Apache環境下成功的運行ASP.NET

來源:互聯網
上載者:User
由於公司的產品在新的版本中,需要考慮一些新的部署方式,所以又抽空關注了一下.NET跨平台的一些解決方案。雖然Mono Project對基於.NET開發的人來說都不陌生,不過由於Mono是比較狹義的跨平台(因為它是OS層級的)概念。而從廣義的角度來說,使用不同的 Web Server也可以算是一種垮平台。

   緣起是由於IIS的口碑實在太濫,以至於不少的關鍵應用情境明文禁止安裝和使用IIS。而從 ASP.NET的執行原理來看,它是通過一個Web Server處理tcp請求,然後把對ASPX執行和呈現交於使用.NET實現一個託管環境來進行的。所以使用Apache是目前最經濟的IIS替代品,而同時在Apache的sub-project正好有一個支援ASP.NET的模組,並且已經開發到了2.0版本。我所配合使用的版本是Apache HTTP Server 2.0.55和mod_aspdotnet 2.0.0。安裝非常的簡單,兩個程式都是msi安裝包,一路next就搞定了。完了再在安裝目錄/htdocs下建一個目錄,如:active。

不過其中有兩個小問題需要注意:
一是:在安裝Apache HTTP Server的時候,如果我們機器上的80連接埠已被佔用,需要選使用8080連接埠來安裝那個選項,當然這個連接埠是可以在httpd.conf檔案裡修改的。只是使用這種安裝方式安裝好以後需要手動的啟動apache2服務,使用cmd命令並進入apache安裝目錄,如:D:Program FilesApache GroupApache2bin,運行: apache -k install

二是:在配置aspdotnet_module的時候,我們需要在httpd.conf檔案中追加以下清單: #asp.net

LoadModule aspdotnet_module "modules/mod_aspdotnet.so"

AddHandler asp.net asax ascx ashx asmx aspx axd config cs csproj licx rem resources resx soap vb vbproj vsdisco webinfo

# Mount the ASP.NET example application

AspNetMount /active "J:/Working/BIVSS"

# Map all requests for /active to the application files

Alias /active "J:/Working/BIVSS"

# Allow asp.net scripts to be executed in the active example

Options FollowSymlinks ExecCGI

Order allow,deny

Allow from all

DirectoryIndex Default.htm Default.aspx

# For all virtual ASP.NET webs, we need the aspnet_client files

# to serve the client-side helper scripts.

AliasMatch /aspnet_client/system_web/(d+)_(d+)_(d+)_(d+)/(.*) "C:/Windows/Microsoft.NET/Framework/v../ASP.NETClientFiles/"

Options FollowSymlinks

Order allow,deny

Allow from all


   本來這個設定檔很簡單,還有詳細的注釋。不過一定要注意上面的命令(非#開頭的行),都需要寫在一行上,如果是從網頁上copy要特別的小心,特別是AddHandler和AliasMatch這兩句容易被斷成兩行,那樣啟動 apache服務就會失敗,並且提示非常簡單,根本不會告訴你設定檔載入錯誤。

目前,這個mod_aspdotnet模組最大的問題是在認證支援上的不足,比如windows和form都還不能支援,不過開源的東西更新還是很快的。由於使用Microsoft .NET Framework作為CLR,開發更新的壓力和Mono不在一個數量級上,相信很快就能有對頁面認證的較好支援。

安裝成功後可以運行探針來檢查效果,比如使用邁克老貓同志的ASP.NET探針。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.