You all might be wondering why we need Apache, since we have IIS to host our ASP.NET applications. But it’s just a trial to see the potential of ASP.NET to work smoothly with other Web Servers.
Apache has been a stable and strong web server for hosting different web applications made using Perl, PHP, Ruby etc. Linux, Apache, MYSQL, PHP(LAMP) is one of the popular development platform in the world. Because the stability of this combination offers, most of the application developers around the world prefering to use LAMP as their application development primary target.
But i previously also tried with Apache ASP.NET combination and found interesting. Since apache takes less resource and works smoothly if the configuration is right.
I recently came across Ohad Isreli’s Blog . Which was quite interesting and i realized what i missed first time in my previous trials. The solution is simple. Just read through the following descriptions.
Following are the instruction to make Asp.Net work under apache:
– Install Apache 2.0.54
– Install Mod_AspDotNet
– Add at the end of C:Program FilesApache GroupApache2confhttpd.conf the following lines
[code lang=”pl”]
#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 /asp application
AspNetMount /SampleASP "c:/SampleASP"
#/SampleASP is the alias name for asp.net to execute
#"c:/SampleASP" is the actual execution of files/folders in that location
# Map all requests for /asp to the application files
Alias /SampleASP "c:/SampleASP"
#maps /SampleASP request to "c:/SampleASP"
#now to get to the /SampleASP type http://localhost/SampleASP
#It’ll redirect http://localhost/SampleASP to "c:/SampleASP"
# Allow asp.net scripts to be executed in the /SampleASP example
<Directory "c:/SampleASP">
Options FollowSymlinks ExecCGI
Order allow,deny
Allow from all
DirectoryIndex index.htm index.aspx
#default the index page to .htm and .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>
#asp.net
[/code]
– Create a directory c:SampleASP and insert in it the index.aspx
– Restart apache server :
Start-> Apache HTTP Server 2.0.54 ->
Control Apache Server -> Restart
– Open Explorer and navigate to http://localhost/SampleASP/index.aspx
If everything worked fine you should get a nice asp.net page working.
Sample Source for
— index.aspx —
[code lang=”vbnet”]
<%@ Page Language="VB" %>
<html>
<head>
<link rel="stylesheet"href="intro.css">
</head>
<body>
<center>
<form action="index.aspx" method="post">
<h3> Name: <input id="Name" type=text>
Category: <select id="Category" size=1>
<option>One</option>
<option>Two</option>
<option>Three</option>
</select>
</h3>
<input type=submit value="Lookup">
<p>
<% Dim I As Integer
For I = 0 to 7 %>
<font size="<%=I%>"> Sample ASP.NET TEST</font> <br>
<% Next %>
</form>
</center>
</body>
</html>
[/code]
Your ASP.NET Application is UP and running on ASP.NET. You might experience slight problems with Session management, with proper configuration you can resolve it or find another alternative.
That’s all for now. Will update this with more details later.. I am in work, and thought of writing this when i found it.
Thanks to Ohad Israeli, for his wonderful article on blog.
Discover more from Cloud Distilled ~ Nithin Mohan
Subscribe to get the latest posts sent to your email.
This works beautifully, but fails on WCF webservices.
For some reason these only run under localhost under Apache. I finally managed to get this to work externally by ensuring Apache also listening on 127.0.0.1:80 and using mod_rewrite.
RewriteEngine on
# To internally change any hostname to localhost - this helps fool WFC to run under apache mod_aspdotnet
# For sites running on a port other than 80 and a hostname other than localhost
RewriteCond %{HTTP_HOST} !^localhost [NC]
RewriteCond %{SERVER_PORT} !^80$
RewriteRule ^/(.*) http://localhost/$1 [L,P]
# For sites running on port 80 and a hostname other than localhost
RewriteCond %{HTTP_HOST} !^localhost [NC]
RewriteRule ^/(.*) http://localhost/$1 [L,P]
hope this helps someone
Really Aiken. Thanks for sharing your findings.. good work..
I have successfully Run it. But when I run Projects compiled in .NET Framework 4 it gives the following Error : –
“”
Help
@ROYAEL I am not sure about the .NET 4.0 support. Let me check and get back to you.
I have successfully Run it. But when I run Projects compiled in .NET Framework 4 it gives the following Error : –
“compilation debug=”true” targetFramework=4.0″
Help
To Royael:
Try to add the AspNetVersion in your http.conf
Example:
AspNetMount /SampleASP “c:/SampleASP”
AspNetVersion v4.0.30319
Hope this help
Thanks warren. sorry @Royael, i completely was busy with some other works and forgot about your issue.