title: What is the best way to Version an ASP.NET 2.0 Web Service?
body: <p>I am maintaining a SOAP web service (ASP.NET version 2.0) and I have to make some changes that will modify the return values of particular methods. </p>
  
  <p>What is the generally accepted method of doing this without breaking existing implementations.</p>
  
  <p>My initial thoughts are that the following would all be possible. </p>
  
  <p>a) Provide new version specific methods within the existing web service e.g. getPerson_v1.4<br>
  b) Provide a complete copy of the .asmx file with a new version number e.g. http:/www.example.com/AdminWS_V1_4.asmx. This is not an idea I relish as the service has more than 50 methods and copying that code for changes to 2/3 methods seems like too much duplicated code.<br>
  c) Override the web-service constructor to allow passing in a version number. This does not seem to work, and on reflection I'm not sure how that would be represented within a WSDL</p>
  
  <p>Is there a generally accepted way of doing this, or do people have advice based upon their experiences in this area.</p>