Mono + apache2 = service is temporarily unavailable (503)

For a week, I have been trying to configure my mono configuration using apache. I must have tried almost everything, shamefully, I do not notice any changes, the problem remains the same.

When I try to connect to the server, I get error 503: the service is temporarily unavailable. When I look at the error log, it seems to be empty, and I'm sure that this is not a permission problem.

About apache:

Package: apache2 Priority: optional Section: httpd Installed-Size: 36 Maintainer: Debian Apache Maintainers < debian-apache@lists.debian.org > Architecture: amd64 Version: 2.2.16-6+squeeze4 Depends: apache2-mpm-worker (= 2.2.16-6+squeeze4) | apache2-mpm-prefork (= 2.2.16-6+squeeze4) | apache2-mpm-event (= 2.2.16-6+squeeze4) | apache2-mpm-itk (= 2.2.16-6+squeeze4), apache2.2-common (= 2.2.16-6+squeeze4) 

About mono:

 Package: mono-apache-server2 Priority: optional Section: httpd Installed-Size: 260 Maintainer: Debian Mono Group < pkg-mono-group@lists.alioth.debian.org > Architecture: all Source: xsp Version: 2.6.5-3 Replaces: mono-server Depends: debconf (>= 0.5) | debconf-2.0, mono-runtime (>= 1.1.8.1), libc6 (>= 2.11) | libc6.1 (>= 2.11) | libc0.1 (>= 2.11), libmono-corlib2.0-cil (>= 2.6.3), libmono-posix2.0-cil (>= 2.4), libmono-security2.0-cil (>= 2.6.7), libmono-system-web2.0-cil (>= 1.9.1), libmono-system2.0-cil (>= 2.6.3), mono-xsp2-base (= 2.6.5-3), perl-modules 

I am using the configuration below.

 <VirtualHost *:80> ServerName myapp.example.com ServerAdmin webmaster@example.com DirectoryIndex index.html index.aspx DocumentRoot /var/www/vhosts/example.com/subdomains/myapp/httpdocs/ # MonoServerPath can be changed to specify which version of ASP.NET is hosted # mod-mono-server1 = ASP.NET 1.1 / mod-mono-server2 = ASP.NET 2.0 # For SUSE Linux Enterprise Mono Extension, uncomment the line below: # MonoServerPath myapp.example.com "/opt/novell/mono/bin/mod-mono-server2" # For Mono on openSUSE, uncomment the line below instead: MonoServerPath myapp.example.com "/usr/bin/mod-mono-server2" #mod-mono-server2 # To obtain line numbers in stack traces you need to do two things: # 1) Enable Debug code generation in your page by using the Debug="true" # page directive, or by setting <compilation debug="true" /> in the # application Web.config # 2) Uncomment the MonoDebug true directive below to enable mod_mono debugging MonoDebug myapp.example.com true # The MONO_IOMAP environment variable can be configured to provide platform abstraction # for file access in Linux. Valid values for MONO_IOMAP are: # case # drive # all # Uncomment the line below to alter file access behavior for the configured application MonoSetEnv myapp.example.com MONO_IOMAP=all # # Additional environtment variables can be set for this server instance using # the MonoSetEnv directive. MonoSetEnv takes a string of 'name=value' pairs # separated by semicolons. For instance, to enable platform abstraction *and* # use Mono old regular expression interpreter (which is slower, but has a # shorter setup time), uncomment the line below instead: # MonoSetEnv myapp.example.com MONO_IOMAP=all;MONO_OLD_RX=1 MonoApplications myapp.example.com "/:/var/www/vhosts/example.com/subdomains/myapp/httpdocs/" <Location "/"> Order allow,deny Allow from all MonoSetServerAlias myapp.example.com SetHandler mono SetOutputFilter DEFLATE SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip dont-vary </Location> <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript </IfModule> ErrorLog /var/www/vhosts/example.com/subdomains/myapp/logs/error.log CustomLog /var/www/vhosts/example.com/subdomains/myapp/logs/access.log combined </VirtualHost> 

Can anybody help me.

Thanks in advance Tim

+7
source share
2 answers

Have you tried the mod_mono AutoConfiguration function? This is by far the best approach to the Apache / Mono / ASP.NET stack. With it, you no longer need to define all the Mono settings on your virtual host.

Here is my mod_mono.conf file (on Mac OS X 10.7.2 and Linux Ubuntu 11.04, this should be compatible with your Debian distribution):

 <IfModule mono_module> AddType application/x-asp-net .config .cs .csproj .dll .resources .resx .sln .vb .vbproj AddType application/x-asp-net .asax .ascx .ashx .asmx .aspx .axd .browser .licx .master .rem .sitemap .skin .soap .webinfo MonoAutoApplication enabled MonoDebug false MonoServerPath "/usr/bin/mod-mono-server4" MonoSetEnv LANG=fr_FR.UTF-8 MonoUnixSocket "/tmp/.mod_mono" <IfModule dir_module> DirectoryIndex Default.aspx </IfModule> <DirectoryMatch "/(bin|App_Code|App_Data|App_GlobalResources|App_LocalResources)/"> Order deny,allow Deny from all </DirectoryMatch> <Location "/Mono"> Order deny,allow Deny from all Allow from 127.0.0.1 ::1 SetHandler mono-ctrl </Location> </IfModule> 

The most important directive is "MonoAutoApplication". And here is an example of a virtual host:

 <VirtualHost *:80> ServerName www.monorules.fr DocumentRoot "/Library/WebServer/Documents/MonoRules" </VirtualHost> 

As you can see, a virtual host boils down to its simplest expression. The parameters defined in the mod_mono.conf file are shared by all virtual nodes.
The only drawback of this solution is that it does not allow you to restart only one instance of an ASP.NET site (as in Microsoft IIS). If you use the Mono control panel (see the Location section) to restart the process, all ASP.NET applications will restart.

+5
source

If you installed mod mono correctly and it is included in apache2, the following configuration should work with your virtual host.

 <VirtualHost *:80> ServerName myapp.example.com ServerAdmin webmaster@example.com DirectoryIndex index.html index.aspx DocumentRoot /var/www/vhosts/example.com/subdomains/myapp/httpdocs/ AddMonoApplications myapp.example.com "/:/var/www/vhosts/example.com/subdomains/myapp/httpdocs/" MonoServerPath myapp.example.com "/usr/bin/mod-mono-server2" <Directory /var/www/vhosts/example.com/subdomains/myapp/httpdocs/> MonoSetServerAlias myapp.example.com SetHandler mono AddHandler mod_mono .aspx .ascx .asax .ashx .config .cs .asmx <FilesMatch "\.(gif|jp?g|png|css|ico|xsl|wmv|zip)$"> SetHandler None </FilesMatch> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow, deny Allow from all DirectoryIndex index.aspx </Directory> </VirtualHost> 
+1
source

All Articles