在APACHE上執行ASP.NET程式
在APACHE上執行ASP.NET程式
一、為什麼不用IIS
用ASP.NET開發網頁,伺服器選擇IIS是絕對最佳的網頁部署方案,我說此話似乎是廢話,因為它們都是微軟自家產品,結合當然會更好些。但是我遇到一種情況,讓我考慮非IIS的ASP.NET部署方案。
我用的作業系統是WINXP系統,而且是Ghost XP版的,一裝好系統預設是沒有安裝IIS的,要下載單獨的IIS安裝包或用原始系統盤在控制皮膚中新增這個IIS元件。在這樣不專業的環境下搭建的IIS問題很多(比如系統更新某些補丁可以導致IIS不可用),有時候IIS出現問題後,即使重灌IIS也是不管用的,此時唯有重灌系統,所以特別煩,特別是自己系統用了一段時間後,安裝了較多軟體,自己真的不想隨便重灌系統。所以此時我想到了IIS之外的ASP.NET伺服器搭建選擇。
二、所需檔案
1、PHPnow。(包含PHP、Apache,MySQL,其實只要Apache就行了,……)
三、配置過程
1、安裝Microsoft .NET Framework。一路Next下去就完成安裝。
2、安裝Apache伺服器。解壓PHPnow安裝包後執行Setup.cmd安裝就行了(具體安裝方法可以參考我另外一篇教程《用Zend Studio+PHPnow+Zend Debugger搭建PHP伺服器除錯環境》),因為我打算還會使用PHP網頁,所以用了PHPnow整合安裝包,而不是單獨安裝Apache。
3、安裝Apache的ASP.NET模組。安裝下載回來的安裝檔案,安裝程式會初始化,並自動去找到Apache安裝目錄,如果發現找錯了,自己可以手動調整。(注意:mod_aspdotnet版本要與自己安裝的Apache版本對應上)。最後配置一下Apache-20/conf/httpd.conf檔案,用記事本開啟這個檔案,在檔案末尾追加以下配置節點,“#”開頭為註釋部分,另外注意修改相應配置中的目錄為自己的實際目錄。
以下Apache配置方法與註釋出自網路,作者未知。
# 這2條配置屬於全域性配置,可放在其它響應 LoadModule/AddHandler 語句塊後面
# 我的配置中,下面整個配置塊是放在最後,未分開,這也是為了方便管理
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
# 下面的整段配置可以放在虛擬主機中
<IfModule mod_aspdotnet.cpp>
# Mount the ASP.NET example application
# AspNetMount 語句相當於 Linux 中的 mount 命令,是把Asp程式目錄掛載到一個 URL 地址
# 如果不是整個網站都用Asp,則不應該掛在‘/’下。如:AspNetMount /asptool "D:\\www\\Apache2\\htdocs\\aspweb"
# 注意:整站採用時,全域性的DocumentRoot 為 "D:/www/Apache2/htdocs/aspweb"
AspNetMount / "D:/PHPnow/htdocs"
# Map all requests for /active to the application files
# 意思是把所有到‘/asptool’的請求對映到掛載的Asp程式目錄下
# 我的配置中,下面一句是註釋掉的
# Alias /asptool "D:/www/Apache2/htdocs/aspweb"
# Allow asp.net scripts to be executed in the active example
<Directory "D:/PHPnow/htdocs">
Options FollowSymlinks ExecCGI
Order allow,deny
Allow from all
DirectoryIndex default.htm default.aspx index.html index.aspx
Directory>
# For all virtual ASP.NET webs, we need the aspnet_client files
# to serve the client-side helper scripts.
# 注意:下面兩行需要對應.Net Framework安裝的目錄
AliasMatch /aspnet_client/system_web/(\d+)_(\d+)_(\d+)_(\d+)/(.*) "C:/WIN2003/Microsoft.NET/Framework/v$1.$2.$3/ASP.NETClientFiles/$4"
<Directory "C:/Windows/Microsoft.NET/Framework/v*/ASP.NETClientFiles">
Options FollowSymlinks
Order allow,deny
Allow from all
Directory>
IfModule>
# asp.net 支援 End.
四、執行並測試網站例項
完成以上安裝與配置後,你現在可以把自己做的簡單的ASP.NET站點程式或者下載的簡單的ASP.NET站點程式放到Apache網站目錄中(htdocs目錄),然後在瀏覽器輸入http://127.0.0.1地址訪問站點。更詳細資訊亦可參考我另外一篇教程《用Zend Studio+PHPnow+Zend Debugger搭建PHP伺服器除錯環境》。這裡我為什麼強調要測試“簡單”的網站呢,因為我發現這個執行環境還是存在一些問題的,請看我下面第五點說明。
五、存在問題
在以上搭建的ASP.NET執行環境下,我測試了動易的SiteFactory CMS,發現問題多多,根本無法正常執行。據瞭解,這個伺服器環境對.NET的身份驗證模式不支援,另外我也發現對子目錄的支援等也會出現一些奇怪問題,因此可以得出結論,這個執行環境是有缺陷的,要慎用,小網站、小測試可以試一下。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-608423/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用 Apache 執行 ASP.NETApacheASP.NET
- ASP.NET 在IIS上執行不了的解決方案ASP.NET
- 在Heroku上執行Go+Revel程式Go
- 在Docker容器中執行ASP.NET MVC應用程式DockerASP.NETMVC
- 在 WASI 上執行 .NET 7 應用程式
- 在NuoDB上執行AsteriskAST
- 在window上執行bash
- 在OSX和Windows版本Docker上執行GUI程式WindowsDockerGUI
- 在VSCode上執行Python程式(Mac)VSCodePythonMac
- 如何在Windows上脫離Cygwin執行Apache KafkaWindowsApacheKafka
- Spark程式碼在叢集上執行過程理解Spark
- wine-在mac上執行exe執行檔案Mac
- 在 Mac 上執行 Windows 應用程式,只需一個CrossOver!MacWindowsROS
- 在Ubuntu上利用vim進行程式編寫及執行Ubuntu行程
- 程式執行緒篇——執行緒切換(上)執行緒
- 在 Azure 上使用 Docker 執行 MonoDockerMono
- 轉:在Linux上執行WinFormLinuxORM
- {Submarine} 在 Apache Hadoop 中執行深度學習框架ApacheHadoop深度學習框架
- 在IDEA上執行成功,打包成jar包後,執行報錯,程式自動退出IdeaJAR
- PlayOnMac ,一款可以在mac上執行Windows程式的工具MacWindows
- 在Mac上用自己編譯出的DNX執行.NET程式Mac編譯
- 微軟在 Apache 下開源 ASP.NET MVC微軟ApacheASP.NETMVC
- Hazelcast JET在Spring Boot上執行ASTSpring Boot
- Phoenix:在HBase上執行SQL查詢SQL
- 可以在Windows的"執行"中直接執行的程式Windows
- 在Linux作業系統上執行Windows應用程式(轉)Linux作業系統Windows
- ASP.NET 執行原理ASP.NET
- Apache Struts 再曝高危遠端程式碼執行漏洞Apache
- 在單機上執行julia並行加速的例子並行
- 在Windows下編寫並執行第一個ASP.NET 5 Preview Web API程式WindowsASP.NETViewWebAPI
- 【WebForms王者歸來】在 ASP.NET Core 中執行 WebForms 業務程式碼,99%相似度!WebORMASP.NET
- 怎樣在 Kubernetes 上執行 PostgreSQLSQL
- 在kubernetes上執行WASM負載ASM負載
- 在 Windows 系統上執行 VIC 水文模型Windows模型
- Clojure執行環境在windows上安裝Windows
- 配置 Rational Functional Tester 在 Linux 上執行FunctionLinux
- 使用 ARChon 執行時環境在 Ubuntu 上執行 Android 應用UbuntuAndroid
- apache禁止執行php檔案ApachePHP