在APACHE上运行ASP.NET经验总结

开发 后端
本文介绍了如何在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服务器搭建选择。

APACHE上运行ASP.NET要点二、所需文件

1、PHPnow。(包含PHP、Apache,MySQL,其实只要Apache就行了,……)

2、Microsoft .NET Framework。

3、Apache的asp.net模块。

APACHE上运行ASP.NET要点三、配置过程

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配置方法与注释出自网络,作者未知。

  1. # asp.net 支持  
  2. # 这2条配置属于全局配置,可放在其它响应 LoadModule/AddHandler 语句块后面  
  3. # 我的配置中,下面整个配置块是放在最后,未分开,这也是为了方便管理  
  4. LoadModule aspdotnet_module "modules/mod_aspdotnet.so" 
  5. AddHandler asp.net asax ascx ashx asmx aspx axd config cs csproj licx rem resources resx soap vb vbproj vsdisco webinfo  
  6.  
  7. # 下面的整段配置可以放在虚拟主机中  
  8. < IfModule mod_aspdotnet.cpp>  
  9.  
  10. # Mount the asp.net example application  
  11. # AspNetMount 语句相当于 Linux 中的 mount 命令,是把Asp程序目录挂载到一个 URL 地址  
  12. # 如果不是整个网站都用Asp,则不应该挂在‘/’下。如:AspNetMount /asptool "D:\\www\\Apache2\\htdocs\\aspweb"  
  13. # 注意:整站采用时,全局的DocumentRoot 为 "D:/www/Apache2/htdocs/aspweb"  
  14. AspNetMount / "D:/PHPnow/htdocs" 
  15.  
  16. # Map all requests for /active to the application files  
  17. # 意思是把所有到‘/asptool’的请求映射到挂载的Asp程序目录下  
  18. # 我的配置中,下面一句是注释掉的  
  19. # Alias /asptool "D:/www/Apache2/htdocs/aspweb"  
  20.  
  21. # Allow asp.net scripts to be executed in the active example  
  22. < Directory "D:/PHPnow/htdocs">  
  23.     Options FollowSymlinks ExecCGI  
  24.     Order allow,deny  
  25.     Allow from all  
  26.     DirectoryIndex default.htm default.aspx index.html index.aspx  
  27. < /Directory>  
  28. # For all virtual asp.net webs, we need the aspnet_client files  
  29. # to serve the client-side helper scripts.  
  30.  
  31. # 注意:下面两行需要对应.Net Framework安装的目录  
  32. AliasMatch /aspnet_client/system_web/(\d+)_(\d+)_(\d+)_(\d+)/(.*) "C:/WIN2003/Microsoft.NET/Framework/v$1.$2.$3/asp.netClientFiles/$4" 
  33.  
  34. < Directory "C:/Windows/Microsoft.NET/Framework/v*/asp.netClientFiles">  
  35.     Options FollowSymlinks  
  36.     Order allow,deny  
  37.     Allow from all  
  38. < /Directory>  
  39.  
  40. < /IfModule>  
  41. # asp.net 支持 End.  
  42.  

APACHE上运行ASP.NET要点四、运行并测试网站实例

完成以上安装与配置后,你现在可以把自己做的简单的asp.net站点程序或者下载的简单的asp.net站点程序放到Apache网站目录中(htdocs目录),然后在浏览器输入http://127.0.0.1地址访问站点。更详细信息亦可参考我另外一篇教程《用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境》。这里我为什么强调要测试“简单”的网站呢,因为我发现这个运行环境还是存在一些问题的,请看我下面第五点说明。

APACHE上运行ASP.NET要点五、存在问题

在以上搭建的asp.net运行环境下,我测试了动易的SiteFactory CMS,发现问题多多,根本无法正常运行。据了解,这个服务器环境对.NET的身份验证模式不支持,另外我也发现对子目录的支持等也会出现一些奇怪问题,因此可以得出结论,这个运行环境是有缺陷的,要慎用,小网站、小测试可以试一下。

【编辑推荐】

  1. ASP.NET MVC jQuery删除链接
  2. ASP.NET MVC框架中引入JQUERY JQRTE控件
  3. ASP.NET MVC 示例项目:Suteki.Shop
  4. ASP.NET MVC三层架构实例
  5. ASP.NET MVC架构中依赖性注入的概念
责任编辑:book05 来源: cnblogs
相关推荐

2009-07-20 17:16:46

IIS中使用ASP.N

2010-05-24 17:42:44

MySQL数据库

2009-08-11 14:20:41

C# .NET学习经验

2009-07-27 16:37:42

ASP.NET主机

2009-10-14 09:29:43

VB.NET加密

2010-01-05 16:46:14

学习.NET Fram

2009-10-15 17:57:33

VB.NET List

2010-01-21 14:49:44

VB.NET操作Wor

2009-10-15 13:06:12

VB.NET Shar

2009-08-17 09:24:25

ASP.NET控件

2009-08-25 17:42:41

ASP.NET新手问题

2009-08-04 17:28:45

Apache支持ASP

2009-07-23 14:39:57

Apache支持ASP

2009-08-05 17:54:04

ASP.NET运行模式

2009-10-15 09:27:00

2009-10-16 18:01:06

VB.NET调用Win

2009-07-29 16:31:39

ASP.NET安装部署

2015-02-26 09:37:09

ASP.NET 5ASP.NET

2009-07-30 12:30:27

ASP.NET中使用S

2009-07-28 17:02:10

ASP.NET运行环境
点赞
收藏

51CTO技术栈公众号