Why... Why... Why...
Micky and Kevin were working last night debugging a web service that was misbehaving. When I left them at 7:15, they were still frustrated and not any closer to figuring out what was going on. It turns out, they were bit by a "feature" of .NET that bit our team a several months ago.
Back in December of 2001, we pushed our first set of web services to QA. We set up all the client side web references to be dynamic; which we though was a slick feature. We modified the URL's in the app.config file and pushed then client over to QA. The testers did thier thing for a few days, inserting data, running queries, blah blah blah. Then, then went to reconcile some database stuff and noticed that none of thier data was in the QA database... hmmm... what happened?
Well, it turns out that the autogenerated proxy for web references has a somewhat disturbing behavior. If it cannot locate the key for the dynamic web reference in the client app.config, it will revert back to whatever URL was used when the Web Reference was orgionally created; in our case this was our dev instance, meaning all data was inserted into the dev database. So all the work the QA group did had to be redone! ugghh...
MS here is some input for the next patch release of VS.NET. Make the runtime throw an exception when the referenced key for dynamic web referance cannot be located! This will save us all much time and grief!!!
[Currently Playing: Primus - Frizzle Fry]