让Windows下的Apache服务器支持ASP.NET

简介: ASP.NET 2.0是最新一代的Web应用开发平台,作为.NET Framework的一部分,它功能强大、性能高且易于开发。

ASP.NET 2.0是最新一代的Web应用开发平台,作为.NET Framework的一部分,它功能强大、性能高且易于开发。作为微软的产品,用于搭建ASP.NET最好的Web服务器当然是IIS(IIS和Apache的比较)。然而,如果一台Windows机器已经装了Apache并已经有了Web应用,就无法再开启IIS(在同一个端口下)。还好我们在Apache httpd下也能对ASP.NET进行支持。

致力于.NET跨平台的最著名的开源项目Mono便提供了一个Apache下的插件Mod_mono来对ASP.NET进行支持。然而Mod_mono主要是针对Unix/Linux平台的。虽然有提供Windows下的版本,但画蛇添足的是它基于Mono而不是Windows现成的.NET Framework,而且更新不及时,不能对ASP.NET 2.0进行很好的支持。

也有人制作了独立的Web服务器来支持ASP.NET,但仍然不能满足我们直接使用现有Apache的需求。

事实上,Apache官方早就提供了ASP.NET解决方案,就是mod_aspdotnet模块。但此插件一年半以前就停止开发了,不知道是给Mono让道还是担心ASP.NET发展太快。不过我们仍然可以从Apache的模块存档库里下载到它。

mod_aspdotnet比mod_mono精巧多了,安装程序才300多K,只要系统里安装了.NET Framework,便能完美支持ASP.NET,甚至2.0。

具体实施相当简单,步骤如下:

1. 下载安装最新的Apache HTTP Server(这里给出的是2.2.3的链接)并进行基本配置(已开启Apache服务的略过此步)。

2. 下载安装mod_aspdotnet模块

3. 修改配置文件(通常位于C:/Program Files/Apache Group/Apache2/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

AspNetMount /SampleASP "c:/SampleASP" 
Alias /SampleASP "c:/SampleASP" 
#/SampleASP是用于执行asp.net的目录的别名,c:/SampleASP是它的实际地址

# 打开脚本运行权限
<Directory "c:/SampleASP"> 
  Options FollowSymlinks ExecCGI 
  Order allow,deny 
  Allow from all 
  DirectoryIndex index.htm index.aspx 
#设置默认文件
</Directory>

# 对于ASP.NET虚拟页面,需要如下aspnet_client文件来支持客户端帮助脚本
AliasMatch /aspnet_client/system_web/(/d+)(/d+)(/d+)(/d+)/(.*) "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>
#asp.net

4. 在C:/SampleASP下创建ASP.NET站点(建立index.aspx文件)

5. 重启Apache服务器。

6. 搞定,可以用http://localhost/SampleASP/index.aspx查看效果了。 

目录
相关文章
|
1月前
|
开发框架 JavaScript 前端开发
震撼!破解 ASP.NET 服务器控件 Button 执行顺序之谜,颠覆你的开发认知!
【8月更文挑战第16天】在ASP.NET开发中,通过Button控件实现先执行JavaScript再触后台处理的需求十分常见。例如,在用户点击按钮前需前端验证或提示,确保操作无误后再传递数据至后台深度处理。此过程可通过设置Button的`OnClientClick`属性调用自定义JavaScript函数完成验证;若验证通过,则继续触发后台事件。此外,结合jQuery也能达到相同效果,利用`__doPostBack`手动触发服务器端事件。这种方式增强了应用的交互性和用户体验。
36 8
|
1月前
|
开发框架 JavaScript 前端开发
揭秘:如何让你的asp.net页面变身交互魔术师——先施展JavaScript咒语,再引发服务器端魔法!
【8月更文挑战第16天】在ASP.NET开发中,处理客户端与服务器交互时,常需先执行客户端验证再提交数据。传统上使用ASP.NET Button控件直接触发服务器事件,但难以插入客户端逻辑。本文对比此法与改进方案:利用HTML按钮及JavaScript手动控制表单提交。后者通过`onclick`事件调用JavaScript函数`SubmitForm()`来检查输入并决定是否提交,增强了灵活性和用户体验,同时确保了服务器端逻辑的执行。
35 5
|
1月前
|
开发框架 缓存 .NET
并发请求太多,服务器崩溃了?试试使用 ASP.NET Core Web API 操作筛选器对请求进行限流
并发请求太多,服务器崩溃了?试试使用 ASP.NET Core Web API 操作筛选器对请求进行限流
|
14天前
|
开发框架 JavaScript 前端开发
|
24天前
|
Ubuntu Linux 测试技术
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
|
24天前
|
Ubuntu 应用服务中间件 Linux
在Linux中,如何配置Web服务器(如Apache或Nginx)?
在Linux中,如何配置Web服务器(如Apache或Nginx)?
|
15天前
|
Java Spring API
Spring框架与GraphQL的史诗级碰撞:颠覆传统,重塑API开发的未来传奇!
【8月更文挑战第31天】《Spring框架与GraphQL:构建现代API》介绍了如何结合Spring框架与GraphQL构建高效、灵活的API。首先通过引入`spring-boot-starter-data-graphql`等依赖支持GraphQL,然后定义查询和类型,利用`@GraphQLQuery`等注解实现具体功能。Spring的依赖注入和事务管理进一步增强了GraphQL服务的能力。示例展示了从查询到突变的具体实现,证明了Spring与GraphQL结合的强大潜力,适合现代API设计与开发。
31 0
|
15天前
|
数据库连接 Apache Java
【独家揭秘】图书管理系统的奇幻之旅:一文看透Apache Wicket如何从想法萌芽到服务器上翩翩起舞?
【8月更文挑战第31天】本文通过实战案例,详细介绍从概念到部署的Apache Wicket应用开发全流程。以在线图书管理系统为例,涵盖应用概念定义、项目创建、架构设计、首页编写、数据库交互及应用部署等关键步骤。通过Maven或Gradle引入Wicket依赖,设计包结构,并使用JPA或Hibernate处理数据持久化。最终,将应用配置并部署到Tomcat或Jetty服务器,帮助你全面掌握Wicket开发技巧。
25 0
|
23天前
|
监控 Linux 测试技术
|
23天前
|
监控 安全 网络安全
如何保护 Apache 服务器的安全
【8月更文挑战第23天】
41 0

推荐镜像

更多