apache支持asp.net的模块mod_aspdotnet的BUG修复及重编译
2011-03-14 23:01
513 查看
apache上面运行.net是突出奇想,然后到网上找了一下,确实有支持,下载下来用了一下,有一些小的BUG,比如写入多个COOKIE只有最后一个COOKIE被写入成功,如果要真正使用这个组件的话,这点是必须修复的,还好在网上找到了mod_aspdotnet的源代码,我用的apache的版本是2.2,于是就把源代码打开把BUG修正了,然后重新编译得到两个文件.
其实我编译的时候花了不少工夫.最终找到官方管理员,请教半天才弄出来,这也是我现在要把我重新编译的两个文件贴出来的主要原因.
编译环境可以是XP或更高版本,vs2005或更高版本,apache2.2
编译的时候不能用批处理编译,要用vs的命令行
set APACHE22_PATH=e:\apache2.2
设置环境变量,就是apache2.2的目录,安装apache的时候千万注意,要完整的安装,有一个什么headers的可选项一定要选上,要不然编译不成功的.
devenv mod_aspdotnet.sln /useenv /build "Release 2.2" /project mod_aspdotnet
编译好后有两个文件,一个是Apache.Web.dll,加入windows GAC就OK了,
mod_aspdotnet.so放到apache下面的modules目录中的
mod_aspdotnet下载地址
这是官方示例的配置文件,具体的可以到其他网站上再看一下,容易找.这里就不写了.
# Load the Apache mod_aspdotnet.so module
# - which in turn loads the .NET / ASP.NET Framework
# - which in turn loads the Apache.Web.dll provider
#
LoadModule aspdotnet_module "modules/mod_aspdotnet.so"
<IfModule mod_aspdotnet.cpp>
# A specific version of the .NET Common Language Runtime may be forced
# with the AspNetVersion directive; uncomment one of the lines below
# for the v1.0 or v1.1 general release versions, and refer to the
# C:/WINDOWS/Microsoft.NET/Framework directory for installed versions.
# The default is the most recent installed .NET CLR version.
#
#AspNetVersion v1.0.3705
#AspNetVersion v1.1.4322
# Appear consistent with other ASP.NET hosts to the client.
# This is optional, unaware of client applications expecting it.
#
Header Add X-Powered-By ASP.NET
# Process these file types with the asp.net handler
# (provided they fall within an AspNetMount'ed location)
#
AddHandler asp.net asax ascx ashx asmx aspx axd config cs csproj \
licx rem resources resx soap vb vbproj vsdisco webinfo
# Serve the /aspnet_client files to the web browser, to handle
# JavaScript controls integrated into ASP.NET applications.
#
AliasMatch "^/(?i)aspnet_client/system_web/(\d+)_(\d+)_(\d+)_(\d+)/(.*)" \
"C:/Windows/Microsoft.NET/Framework/v$1.$2.$3/ASP.NETClientFiles/$4"
# Permit the /aspnet_client files to be served to web clients.
# Change C:/Windows above in the AliasMatch, and below in the <Directory >
# line to reflect the root of Windows (echo %windir% from the cmd prompt.)
#
<Directory "C:/Windows/Microsoft.NET/Framework/v*/ASP.NETClientFiles">
Options FollowSymlinks
Order allow,deny
Allow from all
</Directory>
# This <IfDefine > prevents Apache from processing this example
# template, duplicate the contents (adjusting for your desired
# /app-uri and C:/path/to/app) as many times as necessary, but
# not within the <IfDefine > ... </IfDefine> section
#
<IfDefine ASP.NET-template>
# Create an ASP.NET host for Requests to /app-uri to be processed
# by c:/path/to/app - see the Alias below for actually serving
# /app-uri from Apache.
# This is usually the path of the web.config file for the app.
#
AspNetMount /app-uri "C:/path/to/app"
# Have Apache serve /app-uri requests with c:/path/to/app mounted hosted
# Some form of Alias is required, AspNetMount does not expose /app-uri
# itself, through Apache.
#
Alias /app-uri "C:/path/to/app"
# Permit content in C:/path/to/app to be served (and use ASP.NET
# conventions for the default pages.)
#
<Directory "C:/path/to/app">
# Add 'Indexes' to Options below for autoindex file listings
# Add 'Includes' to Options below for SSI reparsing
Options FollowSymlinks
# Add 'Virtual' to AspNet below for non-file resources
AspNet Files
Order allow,deny
Allow from all
DirectoryIndex default.htm default.aspx
</Directory>
</IfDefine>
</IfModule>
其实我编译的时候花了不少工夫.最终找到官方管理员,请教半天才弄出来,这也是我现在要把我重新编译的两个文件贴出来的主要原因.
编译环境可以是XP或更高版本,vs2005或更高版本,apache2.2
编译的时候不能用批处理编译,要用vs的命令行
set APACHE22_PATH=e:\apache2.2
设置环境变量,就是apache2.2的目录,安装apache的时候千万注意,要完整的安装,有一个什么headers的可选项一定要选上,要不然编译不成功的.
devenv mod_aspdotnet.sln /useenv /build "Release 2.2" /project mod_aspdotnet
编译好后有两个文件,一个是Apache.Web.dll,加入windows GAC就OK了,
mod_aspdotnet.so放到apache下面的modules目录中的
mod_aspdotnet下载地址
这是官方示例的配置文件,具体的可以到其他网站上再看一下,容易找.这里就不写了.
# Load the Apache mod_aspdotnet.so module
# - which in turn loads the .NET / ASP.NET Framework
# - which in turn loads the Apache.Web.dll provider
#
LoadModule aspdotnet_module "modules/mod_aspdotnet.so"
<IfModule mod_aspdotnet.cpp>
# A specific version of the .NET Common Language Runtime may be forced
# with the AspNetVersion directive; uncomment one of the lines below
# for the v1.0 or v1.1 general release versions, and refer to the
# C:/WINDOWS/Microsoft.NET/Framework directory for installed versions.
# The default is the most recent installed .NET CLR version.
#
#AspNetVersion v1.0.3705
#AspNetVersion v1.1.4322
# Appear consistent with other ASP.NET hosts to the client.
# This is optional, unaware of client applications expecting it.
#
Header Add X-Powered-By ASP.NET
# Process these file types with the asp.net handler
# (provided they fall within an AspNetMount'ed location)
#
AddHandler asp.net asax ascx ashx asmx aspx axd config cs csproj \
licx rem resources resx soap vb vbproj vsdisco webinfo
# Serve the /aspnet_client files to the web browser, to handle
# JavaScript controls integrated into ASP.NET applications.
#
AliasMatch "^/(?i)aspnet_client/system_web/(\d+)_(\d+)_(\d+)_(\d+)/(.*)" \
"C:/Windows/Microsoft.NET/Framework/v$1.$2.$3/ASP.NETClientFiles/$4"
# Permit the /aspnet_client files to be served to web clients.
# Change C:/Windows above in the AliasMatch, and below in the <Directory >
# line to reflect the root of Windows (echo %windir% from the cmd prompt.)
#
<Directory "C:/Windows/Microsoft.NET/Framework/v*/ASP.NETClientFiles">
Options FollowSymlinks
Order allow,deny
Allow from all
</Directory>
# This <IfDefine > prevents Apache from processing this example
# template, duplicate the contents (adjusting for your desired
# /app-uri and C:/path/to/app) as many times as necessary, but
# not within the <IfDefine > ... </IfDefine> section
#
<IfDefine ASP.NET-template>
# Create an ASP.NET host for Requests to /app-uri to be processed
# by c:/path/to/app - see the Alias below for actually serving
# /app-uri from Apache.
# This is usually the path of the web.config file for the app.
#
AspNetMount /app-uri "C:/path/to/app"
# Have Apache serve /app-uri requests with c:/path/to/app mounted hosted
# Some form of Alias is required, AspNetMount does not expose /app-uri
# itself, through Apache.
#
Alias /app-uri "C:/path/to/app"
# Permit content in C:/path/to/app to be served (and use ASP.NET
# conventions for the default pages.)
#
<Directory "C:/path/to/app">
# Add 'Indexes' to Options below for autoindex file listings
# Add 'Includes' to Options below for SSI reparsing
Options FollowSymlinks
# Add 'Virtual' to AspNet below for non-file resources
AspNet Files
Order allow,deny
Allow from all
DirectoryIndex default.htm default.aspx
</Directory>
</IfDefine>
</IfModule>
相关文章推荐
- 让apache支持asp、asp.net和jsp
- 让Apache支持ASP.NET
- 让Apache也支持ASP.NET
- 为Apache编译添加mod_expires模块出错的解决笔记[原创]
- ASP.NET Identity 2新增双重认证、帐号锁定、防伪印章功能并修复了一些bug
- 让Apache支持ASP.NET
- Apache服务器运维笔记(2)----使用apxs来进行编译安装 mod_txt 模块
- 通过模块让apache支持asp(最简单的方法)
- 让Windows下的Apache服务器支持ASP.NET
- 利用ASP.NET MVC+Bootstrap搭建个人博客之修复UEditor编辑时Bug(四)
- 彻底放弃IIS让Apache也支持ASP.NET
- apache如何支持asp.net
- 编译安装apache下添加mod_rewrite支持
- 利用ASP.NET MVC+Bootstrap搭建个人博客之修复UEditor编辑时Bug(四)
- apache安装/编译mod_rewrite模块
- 彻底放弃IIS 让Apache也支持ASP.NET
- 彻底放弃IIS 让Apache也支持ASP.NET
- 放弃IIS 让Apache也支持ASP.NET
- 彻底放弃IIS让Apache也支持ASP.NET
- Apache支持ASP.NET方法浅析