Buenas,
Por si acaso a alguien le interesa...
Además del código que puse anteriormente (con el que se captura la respuesta siempre y cuando la solicitud no traiga excepciones) también les pongo la forma de manejar la excepciones ya que anteriormente siempre arrojaba "HTTP 500 Internal Server error" cuando había excepciones.
En este caso sólo voy a poner el código de la función que hace la invocación, finalmente los otros métodos no sufrieron ninguna modificación...
Código vb:
Ver originalPublic Function InvokeService(ByRef bProcessOK As Boolean) As String
Dim _response As WebResponse = Nothing
Dim _strResponse As String = Nothing
Dim _req As HttpWebRequest = Me.CreateWebRequest() 'Instancia de la solicitud Http
'Creación del cuerpo de la solicitud Http
Using _stm As Stream = _req.GetRequestStream()
Using _stmw As New StreamWriter(_stm)
_stmw.Write(Me.CreateSoapEnvelope()) 'Carga de la solicitud SOAP
End Using
End Using
Try
_response = _req.GetResponse 'Captura de la respuesta
bProcessOK = True 'Respuesta exitosa
Dim _str As Stream = _response.GetResponseStream 'Carga la respuesta
Dim _sr As New StreamReader(_str) 'Leer la respuesta
_strResponse = _sr.ReadToEnd 'Carga a una cadena
Return Me.StringResponse(HttpUtility.HtmlDecode(_strResponse)) 'Formatea la respuesta
Catch ex As WebException
bProcessOK = False 'Respuesta con excepciones
Dim _HttpResponse As HttpWebResponse = DirectCast(ex.Response, HttpWebResponse) 'Instancia de la respuesta con excepciones
'Crea el cuerpo de la respuesta con excepciones
Using streamResponse As Stream = _HttpResponse.GetResponseStream
Using _reader As New StreamReader(streamResponse)
Dim failureReason As String = _reader.ReadToEnd ' Carga la cadena con los detalles de la excepción
Throw New Exception(failureReason) 'Lanza la excepción
End Using
End Using
End Try
End Function
Bueno espero que a alguien le sirva
Saludos.