How to use ASP.NET applications in Linux Debian

The Mono project allows you to run applications that use the .NET Framework in the any operating system different from Windows. Now we will launch FastReport.Mono in Linux Debian. The same settings will be applied to all derived from Debian systems, such as Ubuntu.

First, we need to install Mono:

#apt-get install mono mono-gmcs mono-gac mono-utils

If in the future we plan to develop on the computer, install the visual environment of Mono Develop:

#apt-get install monodevelop monodoc-browser monodevelop-nunit monodevelop-versioncontrol

For execute the web-applications written in ASP.NET we should install XSP server:

#apt-get install mono-xsp2 mono-xsp2-base asp.net2-examples

Some examples of ASP.NET 2.0 will installed in /usr/share/asp.net2-demos/. Go to this folder and run XSP server for testing:


See the output of the server:

Listening on port: 8080 (non-secure)
Listening on address:
Root directory: /usr/share/asp.net2-demos
Hit Return to stop the server.

By default, XSP listen the address http://localhost:8080

Check default page of XSP in browser.

Mono XSP

Then we need to install module for Apache2 mod_mono:

#apt-get install libapache2-mod-mono

Restart Apache:

#/etc/init.d/apache2 restart

Check the configuration of mod_mono /etc/apache2/conf.d/mono-web.conf:

MonoAutoApplication Enabled
MonoRunXSP True
MonoDebug False
MonoSetEnv MONO_IOMAP=all
MonoMaxActiveRequests 500
MonoMaxWaitingRequests 500
MonoAutoRestartMode Requests
MonoAutoRestartRequests 5000

Example of virtual host configuration in Apache2:

 AddMonoApplications FrSite "/:/home/www/fr_asp_net_dir"
 MonoExecutablePath FrSite "/usr/bin/mono"
 MonoServerPath FrSite "/usr/bin/mod-mono-server2"
 MonoMaxMemory FrSite 300000000
 MonoMaxCPUTime FrSite 3600
 DocumentRoot "/home/www/fr_asp_net_dir"
 <Directory "/home/www/fr_asp_net_dir/">
 Options Indexes FollowSymLinks MultiViews
 AllowOverride All
 Order allow,deny
 allow from all
 SetHandler mono
 MonoSetServerAlias FrSite
 DirectoryIndex Default.aspx
 AddHandler mono .aspx .ascx .asax .ashx .config .cs .asmx .axd

Let's copy FastReport.Mono demos form \Demos\C#\Web to the configured home directory and check working mod_mono and ASP.NET applications in Linux Debian.


You can read more information about mod_mono configuration in the home site of Mono project