WSS: chiamare web service

Se anche voi state picchiando la testa sulla tastiera perchè su WSS (Windows Sharepoint Services) la vostra web part, chiamando un web service da questo errore:

could not find default endpoint element that references contract

Significa che non avete definito un endpoint predefinito nella classe che chiama un webservice. E nonostante abbiate seguito tutte le indicazioni di mamma Microsoft, porte e permessi siano più libertini di un giovane sessattontino, ancora l'errore persiste … beh allora abbiamo affrontato il medesimo problema.

Infatti, quando vuoi programmate l'accesso a un service (c# – visual studio – .net framework 3.5), nel app.config della vostra solution viene configurato il

<system.serviceModel>...</system.serviceModel>

Ovvero un nodo di configurazione per l'accesso al fornitore del servizio / web service.

Le soluzioni sono due: la prima è quella di riportare il system.serviceModel nel webconfig di WSS, stando bene attenti di rimuovere i nodi che si riferiscono al protocollo SOAP 1.2, altrimenti WSS vi da errore. La seconda è quella di definire applicativamente (c#) quale è l'endpoint di default. Per entrambe le soluzioni, nel progetto di edit, è necessario configurare il servizio come Service Reference.

Se ora istanziate il web service dalla classe in questo modo:

GlobalWeatherWS.GlobalWeatherSoapClient proxyWeather = new MyWebParts.GlobalWeatherWS.GlobalWeatherSoapClient();

Sarà necessario sfruttare il costrutture più evoluto, che richiede il nome di un endpoint e il suo indirizzo remoto. La soluzione base è questa:

System.ServiceModel.BasicHttpBinding newBinding = new System.ServiceModel.BasicHttpBinding();
newBinding.MaxReceivedMessageSize = int.MaxValue;
GlobalWeatherWS.GlobalWeatherSoapClient proxyWeather = new MyWebParts.GlobalWeatherWS.GlobalWeatherSoapClient(
                 newBinding,
                 new System.ServiceModel.EndpointAddress(@"http://www.webservicex.net/globalweather.asmx")
                );

Caricate le vostre DLL in WSS e non avrete più bisogno di mettere mano al web.config, dormendo sonni più tranquilli, quasi come quelli degli amici del video divertente postato oggi su faridere. Se invece siete nerdosissimi anche al venerdì dopo capodanno, non vi resta che intraprendere la lettura di Cenni preliminare sulla creazione di endpoint e seguire i millemila iperlink.

Loading Facebook Comments ...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *