2009-04-29 18 views

risposta

10

Si consiglia di impostare più endpoint per il servizio. Aggiungi un endpoint utilizzando webHttpBinding per ottenere una versione XML del servizio. Se ciò avviene correttamente, la risposta ottenuta dal servizio è identica all'endpoint basicHttpBinding, ma senza il sovraccarico SOAP.

Oltre a ciò, non è possibile chiamare un servizio Web SOAP direttamente dal browser perché richiede un modulo. Potresti usare uno strumento per testarlo usando SOAP, ti consiglio Soap UI. È scritto in Java, ma cerco di non tenerlo contro. :)

36

Si avrebbe bisogno di aggiungere WebGetAttribute al metodo come riportato di seguito

[OperationContract] 
[WebGet(UriTemplate = "/placesList/{userId}", 
ResponseFormat = WebMessageFormat.Xml)] 
List<Places> GetAllPlacesForUser(String userId) 
{ 
    string xml = ""; 
    // build xml here 
    return xml; 
} 

Ora nel browser, si potrebbe invocare il metodo come questo

http://localhost:8085/GeoPlacesDataService/placesList/10
dove 10 è il parametro userId.

Nota: Per aggiungere WebGetAttribute si deve fare riferimento namespace System.ServiceModel.Web che si trova in un assembly separato

+6

Il web non funziona per me. IE mi mostra "cattiva richiesta". – Josh

6

Dopo aver aggiunto il codice di cui sopra, la proprietà endpoint deve essere modificato in web.config, binding="webHttpBinding" e behaviorConfiguration="webHttp".

+3

Ti dispiacerebbe specificare i tag che contengono queste proprietà, per favore? Oppure sarebbe molto gentile da parte tua se ci fornisci il tuo file web.config. –

Problemi correlati