[Mono-aspnet-list] It's Bug? - MapPath method cannot return apache2.2 aliases

Marek Habersack grendel at twistedcode.net
Tue May 26 04:55:11 EDT 2009


USAGI at WRP wrote:
> the method is "string System.Web.HttpContext.Current.Server.MapPath(string
> path)".
> 
> I noticed that the method returned with a false pass on Apache(2.2) +
> mod_mono(2.4) with alias configuration.
> 
> settings:
>  Apache xxxx.conf
> 
>   DocumentRoot /var/www
>   Alias /hoge /var/hoge
> 
>  ASP.NET code
> 
>   var physicalPath = HttpContext.Current.Server.MapPath("/hoge")
> 
> The result in this situation becomes the ”/var/www/hoge”. it's not Physical
> Path. it's Virtual Path on the Apache.
> 
> When I tested it in IIS7 with Windows Vista, the method returned truth
> Physical Path. the problem is bug of mono?
The problem is most likely a misconfiguration of your apache virtual host. Mono has no knowledge of
Apache aliases - it is not embedded in Apache, but rather running in a separate process with 
mod_mono being the bridge between the two. For MapPath to return the correct path, use the
MonoApplications directive, read documentation at

http://mono-project.com/Mod_mono#Configuring_Mod_Mono

In the future we'll perhaps make it more seamless, but there are no definite plans as to when the 
mod_mono rewrite happens.

marek
> 
> # This trouble is avoidable easy.
> # In substitution for an alias function of Apache, it should make a symbolic
> link. for now.
> 



More information about the Mono-aspnet-list mailing list