[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