Making Asp.net Ajax services and IIS6/CMS5/(2003) work.
In the process of migrating a site I encountered a strange problem with asp.net ajax services.
As you all probably are aware - there are two common approaches for running ajax in asp.net.
When the latter approach is used, the methods and class have to be decorated with the ScriptService and ScriptMethod attributes.
After some testing and trying I found a solution.
CMS5 sites are – at least in IIS6 – configured with a wildcard application mapping handler. Having this handler one should assume that everything is caught and handled by this. But not so for the /js and /jsdebug urls.
The solution was to add an explicit handler for asmx pointing to the isapi-dll which is used in the wildcard part.
I would like to add a screenshot for this but it didn’t work publishing images to the blog so I’ll have to explain manually and perhaps conform to WCAG :-)
this can be done from the “Home Directory”-tab in site properties. Press the Configure button and add a new mapping there with extension .asmx.
Most likely the cause of this is a bug in the wildcard application mapping system.