February 26, 2015
Apache and mod_mono on rasbian
Mod_mono is much easier to config at the moment than it has been int he past. Â Assuming you can use apt-get and installed the packages the following is all you need.
apt-get install libapache2-mod-mono mono-apache-server2
Once installed you need to configure for automatic operations. Â Make sure the /etc/apache2/mods-enabled directory contains both of your entries for the load and config of mod mono.
mod_mono.conf:
AddType application/x-asp-net .aspx .ashx .asmx .ascx .asax .config .ascxDirectoryIndex Default.aspx index.aspx
# Include the web application definitions generated by mono-server{2,4}-update.## If you want to use ASP.NET 2.0 (via mono-apache-server2), use:# Include /etc/mono-server2/mono-server2-hosts.conf## If you want to use ASP.NET 4.0 (via mono-apache-server4), use:# Include /etc/mono-server4/mono-server4-hosts.conf
Include /etc/mono-server2/mono-server2-hosts.conf
<Location /mono> SetHandler mono-ctrl Order deny,allow Deny from all Allow from 192.168.200</Location>
mod_mono.load
LoadModule mono_module /usr/lib/apache2/modules/mod_mono.so
Next check your /etc/apache2/sites-enabled/000-default file.  Apache is preconfigured with virtual hosting and you need to enable mod_mono for each virtual site.  You do that by adding the following directive and value: MonoAutoApplication enabled.
000-default
<VirtualHost *:80>ServerAdmin webmaster@localhostDocumentRoot /var/wwwMonoAutoApplication enabled<Directory />Options FollowSymLinksAllowOverride None</Directory><Directory /var/www/>Options Indexes FollowSymLinks MultiViewsAllowOverride NoneOrder allow,denyallow from all</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/<Directory "/usr/lib/cgi-bin">AllowOverride NoneOptions +ExecCGI -MultiViews +SymLinksIfOwnerMatchOrder allow,denyAllow from all</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,# alert, emerg.LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined</VirtualHost>
Next you need to check your /etc/mono-server2/mono-server2-hosts.conf file and make sure it has the MonoAutoApplication directive set to enabled.  Your file should look like this.
<IfModule mod_mono.c>
ForceType application/x-asp-net
MonoAutoApplication enabled
MonoUnixSocket default /tmp/.mod_mono_server2
MonoServerPath default /usr/bin/mod-mono-server2
AddType application/x-asp-net .aspx .ashx .asmx .ascx .asax .config .svc .ascx
MonoApplicationsConfigDir default /etc/mono-server2
MonoPath default /usr/lib/mono/2.0:/usr/lib
</IfModule>
After this a quick restart of apache should have you with a working mono setup. Â If you have issues with applications running you may need to enable the registry hive. Â The following should be run in the root area where your web.con file is located for the application.
mkdir .mono
chown -R www-data.www-data .mono
This will create the directory and assign permissions for it under a default rasbian setup.  Finally working .net on the raspberry pi computer, I’ve had luck with everything from winforms to wcf services with the raspy2.