当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 在Apache环境下成功的运行ASP.NET的注意事项

ASP.NET
asp.net css注释的影响
ASP.NET与数据库相关技巧
关于HtmlForm控件
三色交替的下拉列表框
精通ASP.NET中弹出窗口技术
ASP.NET Forums与现有系统整合方案示例
ASP.NET操作IIS中的虚拟目录
DataGrid与SQL Server 2000数据绑定
如何让Web应用程序在Client端实现导出报表功能
如何保证web app中的Send Email线程稳定性
关于用ASP.Net识别远程主机服务器种类
ASP.NET中上传下载文件
提高ASP.NET性能的方法
asp.net StreamReader 创建文件
asp.net如何生成图片验证码(简单)
一个.net 压缩位图至JPEG的代码
简单的SQL Server数据库数据读取与数据操作
获取网站的RSS聚合到自己的网页
.Net程序中整站通用的防SQL注入函数
asp.net生成缩略图及给原始图加水印的函数

在Apache环境下成功的运行ASP.NET的注意事项


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 53 ::
收藏到网摘: n/a

由于公司的产品在新的版本中,需要考虑一些新的部署方式,所以又抽空关注了一下.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.55mod_aspdotnet 2.0.0。安装非常的简单,两个程序都是msi安装包,一路next就搞定了。完了再在安装目录/htdocs下建一个目录,如:active。
不过其中有两个小问题需要注意:
一是:在安装Apache HTTP Server的时候,如果我们机器上的80端口已被占用,需要选使用8080端口来安装那个选项,当然这个端口是可以在httpd.conf文件里修改的。只是使用这种安装方式安装好以后需要手动的启动apache2服务,使用cmd命令并进入apache安装目录,如:D:\Program Files\Apache Group\Apache2\bin,运行: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
<IfModule mod_aspdotnet.cpp>

# 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
<Directory "J:/Working/BIVSS">
Options FollowSymlinks ExecCGI
Order allow,deny
Allow from all
DirectoryIndex Default.htm Default.aspx
</Directory>
# 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$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>
本来这个配置文件很简单,还有详细的注释。不过一定要注意上面的命令(非#开头的行),都需要写在一行上,如果是从网页上copy要特别的小心,特别是AddHandler和AliasMatch这两句容易被断成两行,那样启动apache服务就会失败,并且提示非常简单,根本不会告诉你配置文件加载错误
目前,这个mod_aspdotnet模块最大的问题是在认证支持上的不足,比如windows和form都还不能支持,不过开源的东西更新还是很快的。由于使用Microsoft .NET Framework作为CLR,开发更新的压力和Mono不在一个数量级上,相信很快就能有对页面认证的较好支持。
安装成功后可以运行探针来检查效果,比如使用迈克老猫同志的ASP.NET探针
服务器基本信息
服务器名称: birdshome 服务器IP地址: 127.0.0.1
.NET Framework语言种类: English (United States) .NET Framework 版本: 2.050727.29
服务器端口: 80 服务器域名: localhost
服务器时间: 11/18/2005 12:11:39 AM 服务器操作系统: Microsoft Windows XP
服务器空间占用: .13 站点物理路径: D:\Program Files\Apache Group\Apache2\htdocs\active\
服务器IE浏览器版本: 6.0000 服务器IIS版本: Apache/2.0.55 (Win32)
服务器上次启动到现在已运行: 12883秒 脚本超时: 30000000秒
虚拟目录绝对路径: D:\Program Files\Apache Group\Apache2\htdocs\active\ 执行文件绝对路径: D:\Program Files\Apache Group\Apache2\htdocs\active\SiteInfo.aspx
服务器操作系统安装目录: C:\WINDOWS 服务器应用程序安装目录: C:\Program Files
CPU个数: 本计算机中有1个CPU CPU类型: x86 Family 15 Model 3 Stepping 3
CPU等级: CPU等级为50528271 CPU OEM ID: CPU的OEM ID为0
CPU页面大小: CPU中的页面大小为4096
75%的内存正在使用 物理内存共有510MB
可使用的物理内存有126MB 交换文件总大小为1245MB
尚可交换文件大小为750MB 总虚拟内存有2047MB
未用虚拟内存有1817MB 逻辑驱动器: A: ||C: ||D: ||E: ||F: ||G: ||H: ||J: ||K: ||L: ||M:

最后一定要注意:由于apache本身对于url的目录和文件名是大小写敏感的,所以asp.net的虚拟目录必须要注意大小写,否则访问的时候不会出错,不过将会找不到任何的文件,就像访问一个空的目录一样。除了虚拟目录名外,由于其它的aspx文件是mod_aspdotnet模块载入的,所以又仍然是非大小写敏感的。