It is so easy to get .Net 2.0 web service deployment all screwed up if you're not careful.
For instance, I first tried deploying my new web service as a subfolder of another website. To keep things running smoothly I put the new web service under its own application isolation. However the parent folder ran a website that was referencing some Atlas assemblies in the httpModules section of the root folder's web.config. Although ASP.Net was more than happy to apply all the web.configs up the folder tree to the root of the website,
the application isolation prevented the webservice from accessing those assemblies (not that they were required for the new web service).
So, I turn off application isolation since IIS 6.0 and ASP.Net can't agree on what the actual boundary of my web service really is and the second problem appears:
It would seen that web services in subfolders of a website can't "inherit" the ASP.Net version selection. For a web service written with ASP.Net 2.0, this causes the web service to deploy using the wrong version of .Net. No matter how many times you check the settings on the root folder or how many time you see for yourself that the subfolder containing the web service says it's inherited .Net verion is 2.0.x.x, you will get the typical "Parser error" message when trying to browse to the .asmx page (assuming you haven't already turned off WSDL for the web service).
The good news is, all you have to do is return to using application isolation and confirm that you've selected .Net 2.0 for the version number in the ASP.Net tab in the IIS properties dialog for your web service's folder.
As always, these are the dumb obvious things that I will forget the moment I turn my back to developing web services for another six months. Hence the need to catalog them in this blog!
Note to future self: Hope This Helps.
Tags: asp.net, iis, webservices, application isolation, errors, installation