Apache 2.2 部署 ASP.NET 3.5 实战配置指南
前置准备
要在 Apache 上运行 ASP.NET 应用,核心在于使用 mod_aspdotnet 模块。这是一个较老但稳定的方案,主要适用于维护遗留系统或特定服务器环境。
在开始之前,请确保你的 Windows 环境已安装:
- .NET Framework 3.5(必须)
- JDK(如果后续涉及 Tomcat 集成,本方案主要依赖 mod_aspdotnet)
软件准备
我们需要以下组件(注意版本对应关系):
- Apache HTTP Server:推荐 httpd-2.2.x 系列(如 2.2.15),因为 mod_aspdotnet 对新版支持不佳。
- mod_aspdotnet:负责解析 ASP.NET 请求的模块。
提示:由于相关资源年代久远,建议从官方归档或可信源获取安装包,避免下载链接失效带来的困扰。
安装步骤
1. 安装 Apache
运行 Apache 安装程序,一路 Next 即可。注意在安装向导中填写正确的 ServerName 和邮箱地址,选择 "For All Users" 以确保权限正常。
2. 安装 mod_aspdotnet
双击安装包,同意条款后选择 "All Users"。这一步会将模块注册到系统中,无需手动复制文件。
3. 放置项目
将你的 ASP.NET 项目文件夹放入 Apache 的 htdocs 目录下。例如:
C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/active/WorkOrder
关键配置
编辑 conf/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
<IfModule mod_aspdotnet>
# 挂载示例应用
AspNetMount /active "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/active/WorkOrder"
# 映射 URL 到物理路径
Alias /active "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/active/WorkOrder"
# 允许执行脚本
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/active/WorkOrder">
Options FollowSymlinks ExecCGI
Order allow,deny
Allow from all
DirectoryIndex Default.htm Default.aspx
</Directory>
# 处理 ASP.NET 客户端辅助脚本
AliasMatch /aspnet_client/system_web/([0-9]+)_([0-9]+)_([0-9]+)_([0-9]+)/(.*) "C:/Windows/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>

