views:

118

answers:

2

by some unfortunate events we published a web service with the tempuri-namespace a couple of months ago and no one did notice (not in our company, not the companies connecting to the web service) even though it's live since that time and lots of companies (~25 i guess) already access this web service.

now i'm thinking of correcting that mistake and have the namespace fixed to a proper value.

the only problem is: as soon as we would do it, all the programs and services connected to this web service would stop working. i can't really allow that to happen.

is there any way to fix the namespace for future purpose or to have the web service operate under two namespaces as one web service?

any tip at all what i could do to get rid of the tempuri-namespace and have it fixed without needing to synchronize the change with all the external companies?

i'm all out of ideas, so any help would be much appreciated! thanks!

A: 

Are you sure that everything using the webservice will stop working, most things i have seen wouldn't even care if the namespace changed. i.e. if you create a web reference or use the WSD tool in visual studio to consume a web service it will not break if the XML namespace changes on the web service. It does not use that in the C# namespace at all.

Ben Robinson
thanks for the fast response! yes I have made myself a demo-tool and used a test-environment to see what happens when we fix the namespace: my demo-tool wasn't working any longer. I had to use "update web reference" in visual studio and recompile, then it worked again. I also checked with two of those external companies that I can talk to easier than most of the other companies and they tried and also would have to update their software because it wasn't working any more - hence my idea of any alternative ways where other companies not affected of such a change.
eloQ
oh i forgot: by "stop working" i actually mean that the only thing to be changed is to update the web reference and recompile, of course everything else, passing values, getting values, still works the same way. it's just the sending-part of the program that stops working when the namespace is changed.
eloQ
A: 

Can you wait until you next release your set of Web Services? At this point they would need to recompile with the new WSDL anyways.

bechbd
time is not the issue i just want to get rid of the tempuri-default. when we make updates to the service we usually only make updates to the XML-structure/XSD, not ship new versions. and companies don't have to recompile with the new WSDL usually, we update (extend!) some parts quite often and that was never an issue, only the namespace-change would seriously shake things up.
eloQ
I am pretty sure that changing the Namespace of a WSDL is a breaking change and that there is no way to do it without the need for you clients to rebuild.
bechbd