Running ASP.NET on Apache 2.2
Continuing with running Apache 2.x on Windows systems (Windows 7 and Windows 2008 R2) I found the desire to be able to deliver ASPX pages on the Windows server in my development environment. Upon searching the Internet I came across an Apache module mod_aspdotnet.so found here. The module is no longer being actively updated but works well on Apache 2.0 – 2.2 installations.
This implementation is limited and true ASP hosting should be done with IIS, but no one said we couldn’t have a try at it!
Download mod_aspdotnet-2.2.0.2006-setup-r2.msi but do not double click to run the installation. Instead we need to extract the contents to a temporary directory and will manually copy Apache.Web.dll and mod_aspdotnet.so to the correct directory’s. The reason is that double-clicking will not put the Apache.Web.dll file in the correct location and will register with the GlobalAssemblyCache.
Open a command prompt and change to the directory where you downloaded the file to and run the command.
msiexec /a/qb TARGETDIR=
Example:
msiexec /a mod_aspdotnet-2.2.0.2006-setup-r2.msi /qb TARGETDIR=c:\temp
The files will be extracted into
First, copy mod_aspdotnet.so to your Apache modules directory c:\Apache2\modules next copy Apache.Web.dll to the c:\apache2\bin, assuming this is where you have installed Apache.
Modify Apache’s httpd.conf file and add this section to the end of the file.
# asp.net support 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 AliasMatch "^/(?i)aspnet_client/system_web/(\d+)_(\d+)_(\d+)_(\d+)/(.*)" \ "C:/Windows/Microsoft.NET/Framework/v$1.$2.$3/ASP.NETClientFiles/$4"Options FollowSymlinks Order allow,deny Allow from all # Create Temporary ASP.NET Files directory under .NET framework 2.0. AspNetMount /asp "C:/apache2/htdocs/asp" Alias /asp "C:/apache2/htdocs/asp" # Allow asp.net scripts to be executedOptions FollowSymlinks Indexes AspNet Files Order allow,deny Allow from all DirectoryIndex default.htm default.aspx
Save the changes and restart Apache service, hopefully the service will restart without errors. Now we need to test the setup, in the Directory directive I have created a test asp site.
Open your editor of choice and paste in the following code. This will display the .NET version.
<%@ Page Language="VB" %>ASP.NET Version
Save the file as default.aspx in the c:\apache2\asp\ directory.
Hope this works for you as it did for me. This will only work on Apache 2.0 / 2.2.
Hi did this really work? I did this the same as your post. But I cannot restart Apache, it shows “The requested operation has failed!”
Have any idea what’s going on?
It did work and I did have issues. This module is not being supported by the developer and is limited in what it does and the stability. I was able to get the test page to work but nothing else. It was really an experiment to see if it would really work. If you want ASP.NET you really want to use IIS. The module has to load exactly and if not it will cause Apache not to load.
can it work on Apache2.4? if not, how can make it work?
Sorry to say that it does not work with Apache 2.4.