Πριν από λίγο είχα την ιδέα να σταματήσω το default web site στον IIS του μηχανήματός μου όπου τρέχω και τον client. Δοκίμασα πάλι και πήρα το εξής μήνυμα :
WSClient_GetTextFileContents : System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.GetRequestStream()
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at AsyncTicketDataOperator.TicDatWS.TicketData.GetTextFileContents(String Filename) in C:\Projects\AsyncTicketDataOperator\AsyncTicketDataOperator\Web References\TicDatWS\Reference.vb:line 182
at AsyncTicketDataOperator.TDOperatorAsync.WSClient_GetTextFileContents(String FileName, String& ErrorMessage) in C:\Projects\AsyncTicketDataOperator\AsyncTicketDataOperator\TDOperatorAsync.vb:line 815
Στον client ο κώδικας που χρησιμοποιώ είναι ο ακόλουθος :
Private Sub btnHello_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHello.Click
Try
Dim strError As String = ""
MessageBox.Show(m_tdwsAsync.WSClient_Greetings(strError))
If strError.Length > 0 Then
MessageBox.Show(strError)
End If
MessageBox.Show(m_tdwsAsync.WSClient_GetTextFileContents(InputBox(
"Full path text filename to be read (on Web Service Machine):"), strError))
If strError.Length > 0 Then
MessageBox.Show(strError)
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Το m_tdwsAsync είναι ένα instance του DLL το οποίο χρησιμοποιεί το web service. Είναι δηλωμένο σε module-level ως :
Private
WithEvents m_tdwsAsync As AsyncTicketDataOperator.TDOperatorAsync
Το AsyncTicketDataOperator καλεί μια μέθοδο του web service ασύγχρονα. Μέσα στο event complete της μεθόδου του web service κάνω RaiseEvent το event του AsyncTicketDataOperator. Τώρα η χρήση του DLL συγκεκριμένα για την ασύγχρονη μέθοδο μέσα από τον client είναι τουλάχιστον προβληματική. Την πρώτη φορά που θα ξεκινήσω τη διαδικασία (με button) φαίνεται ότι δεν παίζει. Πρέπει να το ξαναπατήσω για να παίξει. Έχω ξεφύγει όμως από το θέμα του post και μάλλον θα πρέπει να ανοίξω ένα καινούριο.