Ciao a tutti, ho un problema con il trasferimento di alcuni dati da un db ad un altro tramite web service.
Ho creato un servizio web in questo modo:
<WebService(Namespace:="http://tempuri.org/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicPr ofile1_1)> _
<Global.Microsoft.VisualBasic.CompilerServices.Des ignerGenerated()> _
Public Class GestioneUpdate
Inherits System.Web.Services.WebService
// Web Methods
End Class
richiamo questo servizio dalla mia applicazione inizializzandolo così:
Dim virDirWSWeb As String = DIRVIRTUALE
accountServizioUpdate = New GestioneUpdate.AuthHeaderVB
accountServizioUpdate.Username = NOMEUTENTE
accountServizioUpdate.Password = PASSWORD
p = New GestioneUpdate.GestioneUpdate
If serverWebInternet.IndexOf(HTTP) >= 0 Then
p.Url = serverWebInternet & "/" & virDirWSWeb & "/GestioneUpdate.asmx"
Else
p.Url = HTTP & serverWebInternet & "/" & virDirWSWeb & "/GestioneUpdateOrdiniWeb.asmx"
End If
p.Timeout = TIMEOUT_SERVIZI_WEB
p.AuthHeaderVBValue = accountServizioUpdate
durante il trasferimento a volte però viene visualizzato il seguente errore:
System.Net.WebException: The underlying connection was closed: The connection was closed unexpectedly.
at System.Web.Services.Protocols.WebClientProtocol.Ge tWebResponse(WebRequest request)
at System.Web.Services.Protocols.HttpWebClientProtoco l.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.SoapHttpClientProtoc ol.Invoke(String methodName, Object[] parameters)...
mi sono documentato un pò in rete e ho visto che è un problema noto (http://weblogs.asp.net/jan/archive/2...28/63771.aspx, http://blog.josh420.com/archives/200...exception.aspx), ma ancora devo ben capire il modo per risolverlo.
Da quanto c'è scritto negli articoli dovrei sovrascrivere il metodo GetWebRequest con il seguente codice:
Protected Overrides Function GetWebRequest(ByVal uri As System.Uri) As System.Net.WebRequest
Dim webRequest As HttpWebRequest = DirectCast(MyBase.GetWebRequest(uri), HttpWebRequest)
webRequest.KeepAlive = False
// oppure inserendo webRequest.ConnectionGroupName = Guid.NewGuid().ToString()
// non ho ancora ben capito quale dei due settaggi bisogna usare
Return webRequest
End Function
il mio problema è che se, nel reference.vb del servizio, inserisco questo codice non mi viene riconosciuto, mi dice che il metodo GetWebRequest non appartiene il namespace. Ho provato anche ad inserirlo nella classe da cui richiamo il servizio ma mi dice che il metodo GetWebRequest non può essere sovrascritto.
Non è possibile imposare i parametri della richiesta in altro modo? O in alternativa sapete indicarmi qualche altro tipo di soluzione?
Vi ringrazio in anticipo per ogni informazione.

Rispondi quotando