
FAQ

1. General questions

1.1) Does mod_mono run on Apache 1.3?

	Not yet, but support is planned. The reason for choosing
	Apache 2 was better threading and Windows support.

1.2) But I really need to use Apache 1.3

	You can always run an Apache 2 in a different ip/port combination and
	forward ASP.NET related request to it.

	For example, you can have an Apache 1.3 listening on port 80 and Apache 2
	with mod_mono on port 8000. You want all requests directed to 
	http://example.com/mono/ served by Apache 2.

	You can do so by adding the following to the Apache 1.3 configuration
	
	ProxyPass /mono/ http://127.0.0.1:8000
	ProxyPassReverse /mono/ http://127.0.0.1:8000

1.3) Does mod_mono run on Windows?

     Not yet, can you contribute a Windows makefile?

1.4) Does it support more than one MonoApplication directives?

     Not yet

1.5) Is there a Debian mod_mono package?

     No, but several people has expressed interest. Can you contribute
     one?


2. Installation and troubleshooting

	If you get a blank page or a stack trace instead of the page
	you expected, something went wrong. To find out what, the most
	useful place to look at is the Apache error_log file. If you
	installed Apache from source as explained it will be in
	/usr/local/apache2/logs, if you use Red Hat, it will be in
	/var/logs/httpd/

2.1) I get an error about a .wapi/ directory

	Mono creates that directory in the home of the current
	user. When you are running Mono inside Apache, it tries to
	create that directory in the home of the user Apache is
	running as. This will be solved in future releases, but for
	now the following hack should work:
	
	If you get something like
	
	** (process:2899): CRITICAL **: : shared file [/var/www/.wapi/shared_data-0] open error: No such file or directory
	
	Then you need to issue the following commands, as root
	
	mkdir /var/www/.wapi/
	chown apache.apache /var/www/.wapi
	chmod 700 /var/www/.wapi


2.2) I get an error about a missing tmpxxxxxxxxx.dll

     	If you get something like:
	
	Unhandled Exception: System.UnauthorizedAccessException: Access to the path "./tmp1632595207.dll" is denied.
	
	There are two possible reasons:

	      * the C# compiler is not in your path (this happens if
	       	you have Mono installed in a different prefix and 
		the Apache defaults do not point to this path
	       	location).

             * You do not have write permission for holding the
               temporary files in your ASP.NET directory.
	        
	       Probably because the user apache is running as does not
	       have permission to write in that directory.
	
	       The following should fix it:
	
	chown -R apache.apache /home/user/mono/install/xsp/server/test

2.3) System.Web.HttpException: String returned by HttpRuntime.GetResourceStringFromResourceManager

	Make sure a valid machine.config file is present As of Mono
	0.18, the rpm version installs it in /etc/mono/machine.config,
	but the runtime expects it in /usr/etc/mono/machine.config,
	make sure you copy it there

2.4) I just get a blank page, and no error in the error_log

	This is a bug that needs to be tracked down. For now try
	commenting the following in the machine.config file Remove or
	comment out the following from the machine.config file
	
	 <section name="authentication" type="System.Web.Configuration.AuthenticationConfigHandler, System.Web" />
	
	 <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" />
	 <authentication mode="Forms">
	     <forms name=".MONOAUTH" loginUrl="login.aspx" protection="All" timeout="30" path="/">
	         <credentials passwordFormat="Clear">
	            <!--<user name="gonzalo" password="gonz"/>-->
	         </credentials>
	     </forms>
	 </authentication>
	

2.5) I get an error complaining about IntPtr serialization constructor

	This has been fixed in CVS, if you use a precompiled Mono 0.20
	you need to substitute your corlib.dll with the one in
	http://apacheworld.org/modmono/
