Sto mantenendo un servizio Web SOAP (ASP.NET versione 2.0) e devo apportare alcune modifiche che modificheranno i valori di ritorno di particolari metodi.Qual è il modo migliore per eseguire la versione di un servizio Web ASP.NET 2.0?
Qual è il metodo generalmente accettato per fare ciò senza rompere le implementazioni esistenti.
I miei pensieri iniziali sono che quanto segue sarebbe tutto possibile.
a) Fornire nuovi metodi specifici della versione all'interno del servizio Web esistente, ad es. getPerson_v1.4
b) Fornire una copia completa del file .asmx con un nuovo numero di versione, ad es. http: /www.example.com/AdminWS_V1_4.asmx. Questa non è un'idea che apprezzo perché il servizio ha più di 50 metodi e copiare quel codice per le modifiche ai metodi 2/3 sembra un codice troppo duplicato.
c) Sostituire il costruttore del servizio Web per consentire il passaggio di un numero di versione. Questo non sembra funzionare, e sulla riflessione non sono sicuro di come sarebbe rappresentato all'interno di un WSDL
C'è un modo generalmente accettato di farlo, o le persone hanno consigli basati sulle loro esperienze in questo settore.
Penso che questo sia un buon modo di fare e molte organizzazioni usano questo metodo. Questo dimostra chiaramente che l'utente sta accedendo a una versione diversa del servizio. – BobbyShaftoe
Avrei incluso quello nella mia lista in quanto sembra un'opzione ragionevole, tuttavia il servizio Web si trova con un'intera quantità di altro codice e tutti i nostri utenti esistenti faranno riferimento al sito "Principale" (cioè senza versione) –
@Steve Weet, non sarebbe risolvibile continuando l'esempio e creando una directoy ala: http://www.example.com/soap/current/ - che verrebbe semplicemente mappata alla versione più recente? Mettere i numeri di versione su metodi rende l'API complicata per i nuovi utenti che non sono interessati a tutta la cronologia ... – Thies