[Mono-list] IHttpHandler works fine under IIS but not Apache

Peter Hagen peter at wingsofdeath.nu
Fri Apr 3 05:32:46 EDT 2009


Hi

I fixed this by using an alias. I added an alias in the site 
configuration, and added the alias path to the web.config:

Apache site config

Alias /test "/some/real/path/to/my/site/www"
<Location /test>
   SetHandler mono
</Location>

Web.config

<configuration>
   <system.web>
     <httpHandlers>
       <add verb="*" path="/test/*" 
type="Willow.Cms.Common.WebServiceHandler, Willow.Cms.Common" />
     </httpHandlers>
   </system.web>
</configuration>

With this configuration you don't need to create the directory

Cheers

Peter


Mike Christensen wrote:
> This is already done.
> 
> As I've stated in my email, this works for /Test.foo but not 
> /Blah/Test.foo.  Apache requires the physical directory to exist on the 
> filesystem, otherwise it returns a 404.
> 
> Ricardo Lopes wrote:
>> Hi,
>>
>> You have to tell apache to send requests to *.foo to mod-mono, check
>> your configuration.
>>
>> 2009/4/3 Mike Christensen <imaudi at comcast.net>:
>>   
>>> Hi guys - I'm thinking this is most likely either an Apache limitation,
>>> a configuration problem, or a bug in mod-mono.  I'm hoping it's the
>>> latter so we can fix it :)
>>>
>>> Let's say I have an IHttpHandler:
>>>
>>> public class Handler : IHttpHandler
>>> {
>>> //Stuff here that will blow your mind
>>> }
>>>
>>>
>>> Now I register this in my web.config:
>>>
>>> <httpHandlers>
>>>  <add verb="*" path="*.foo" validate="false" type="Handler" />
>>> </httpHandlers>
>>>
>>> Good so far right?
>>>
>>> When I go to:
>>>
>>> /Test.foo
>>>
>>> My handler will be invoked and it will do all sorts of great things that
>>> you simply can't imagine, probably change the world and all.
>>>
>>> However if I do:
>>>
>>> /Blah/Test.foo
>>>
>>> Then Apache gives me a default 404 File not found error.
>>>
>>> If I go and create a blank directory on the file system called Blah,
>>> things will then work again.  The point is, I do not want Apache or
>>> anything else validating the filepath or directory structure.  Keep in
>>> mind there's web apps such as SharePoint that allow you to provision
>>> webs, subwebs, etc and these paths are completely resolved by HTTP
>>> handlers and are totally independent of the filesystem.  Porting this
>>> architecture over to Mono might cause problems.
>>>
>>> My question is what is actually to blame?  Is Apache verifying the
>>> directory before passing the request off to mod_mono?  It obviously
>>> doesn't validate the file itself since Test.foo doesn't exist anywhere
>>> on the filesystem.  I kinda think so because it's an Apache 404 error
>>> page I'm getting, which depresses me.  Also, this doesn't happen on xsp
>>> so I blame Apache.  Anything I can do about this?
>>>
>>> On my app, I can hack around it by creating the directories or maybe
>>> doing some hacks with vdirs and stuff, but is there a way we can provide
>>> a better experience?  Thanks!!
>>>
>>> Mike
>>> _______________________________________________
>>> Mono-list maillist  -  Mono-list at lists.ximian.com
>>> http://lists.ximian.com/mailman/listinfo/mono-list
>>>
>>>     
>>
>>
>>
>>   
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Mono-list maillist  -  Mono-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list


More information about the Mono-list mailing list