Ciao SirJo, buon di,
come scrivevo prima io non ho usato l'oggetto HTTPRequest per il consumer del WSDL. Oltretutto sinceramente non saprei neanche come fare perchè ci sono dei certificati da utilizzare nella chiamata.
Ti post il metodo che ho utilizzato
<<
Public Sub pro_ComunicaMetadatiDocumento_FSE(ByRef p_str_IdDocumentParent As String,
ByRef p_str_Cod_OUT As String,
ByRef p_str_Des_OUT As String)
Try
'
'--
Dim p_str_File_NO_Firma As String = "", p_str_File_SI_Firma As String = ""
Dim myBinding As CustomBinding = fun_CustomBinding()
Dim EndPoint As New EndpointAddress(New Uri("
https://isan.ruparpiemonte.it/dmacertclmed1/services/CLFSEService3?wsdl"),
EndpointIdentity.CreateDnsIdentity("AAAAAA00B77B000F/CSI PIEMONTE/DEMO 20"))
'
'--
System.Net.ServicePointManager.ServerCertificateValidationCallback =
Function(se As Object,
cert As System.Security.Cryptography.X509Certificates.X509Certificate,
chain As System.Security.Cryptography.X509Certificates.X509Chain,
sslerror As System.Net.Security.SslPolicyErrors) True
'
'--
Dim fse_App As New fse_Piemonte.CLFSEServicePort3TypeClient(myBinding, EndPoint)
ServicePointManager.ServerCertificateValidationCallback = AddressOf AcceptAllCertifications
'
'-- Per Test utilizzare certificato 'demservicetest.cer' altrimenti 'demservice.cer'
Dim Certificato As New X509Certificate2
Dim PathCer As String = ""
Dim Firma As Byte() = Nothing
PathCer = System.IO.Directory.GetCurrentDirectory() & "\AAAAAA00A11C000K.p12"
Firma = File.ReadAllBytes(PathCer)
Certificato.Import(Firma, "PIEMONTE", X509KeyStorageFlags.DefaultKeySet)
fse_App.ClientCredentials.ClientCertificate.Certificate = Certificato
'
'--
PathCer = System.IO.Directory.GetCurrentDirectory() & "\AAAAAA00B77B000F.p12"
Firma = File.ReadAllBytes(PathCer)
Certificato.Import(Firma, "PIEMONTE", X509KeyStorageFlags.DefaultKeySet)
fse_App.ClientCredentials.ServiceCertificate.DefaultCertificate = Certificato
'
'--
Dim myAuthProperties As X509ClientCertificateAuthentication
fse_App.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = myAuthProperties.CertificateValidationMode.None
'
'Certificati
'
'--
Dim fse_Request As New fse_Piemonte.RegistraEpisodioReq3
With fse_Request
'
'-- Richiesta
.richiesta = fun_FSE_Piemonte_RichiestaAzienda2(m_ut_FSE_Piemonte_RegistraEpisodioReq3.ut_Richiesta,
p_str_Cod_OUT,
p_str_Des_OUT)
If p_str_Cod_OUT.Trim.ToUpper <> "OK" Then GoTo Giu
'
'-- Paziente
.paziente = fun_FSE_Piemonte_PazienteFSE2(m_ut_FSE_Piemonte_RegistraEpisodioReq3.ut_Paziente,
p_str_Cod_OUT,
p_str_Des_OUT)
If p_str_Cod_OUT.Trim.ToUpper <> "OK" Then GoTo Giu
'
'-- Episodio
.episodio = fun_FSE_Piemonte_EpisodioFSE2(m_ut_FSE_Piemonte_RegistraEpisodioReq3.ut_Episodio,
p_str_Cod_OUT,
p_str_Des_OUT)
If p_str_Cod_OUT.Trim.ToUpper <> "OK" Then GoTo Giu
'
'-- Documento
.documento = fun_FSE_Piemonte_DocumentoFSE3(m_ut_FSE_Piemonte_RegistraEpisodioReq3.ut_Documento,
p_str_Cod_OUT,
p_str_Des_OUT)
If p_str_Cod_OUT.Trim.ToUpper <> "OK" Then GoTo Giu
End With
'
'--
Dim fse_Response As fse_Piemonte.RegistraEpisodioRes
fse_Response = fse_App.registraEpisodio3(fse_Request)
'
'--
p_str_IdDocumentParent = fse_Response.ToString
p_str_Cod_OUT = "OK"
p_str_Des_OUT = p_str_IdDocumentParent
'
'--
Giu:
fse_Response = Nothing
fse_Request = Nothing
fse_App = Nothing
EndPoint = Nothing
'
'--
Catch e_001 As FaultException(Of HttpWebResponse)
p_str_Cod_OUT = "KO"
p_str_Des_OUT = e_001.Message
Catch e_002 As FaultException(Of fse_Piemonte.erroreFSE)
p_str_Cod_OUT = "KO"
p_str_Des_OUT = e_002.Detail.codice & " - " & e_002.Detail.descrizione
Catch e_003 As FaultException(Of fse_Piemonte.Ens_Response)
p_str_Cod_OUT = "KO"
p_str_Des_OUT = e_003.Detail.ToString
Catch e_004 As FaultException(Of fse_Piemonte.Ens_Request)
p_str_Cod_OUT = "KO"
p_str_Des_OUT = e_004.Detail.ToString
Catch e_005 As TimeoutException
p_str_Cod_OUT = "KO"
p_str_Des_OUT = e_005.Message
Catch e_009 As WebException
p_str_Cod_OUT = "KO"
p_str_Des_OUT = e_009.Message
Catch e_006 As FaultException
p_str_Cod_OUT = "KO"
p_str_Des_OUT = e_006.Message
Catch e_007 As CommunicationException
p_str_Cod_OUT = "KO"
p_str_Des_OUT = e_007.Message + e_007.StackTrace
Catch ex As Exception
p_str_Cod_OUT = "KO"
p_str_Des_OUT = ex.Message & " - (Function pro_ComunicaMetadatiDocumento_FSE)"
End Try
'
'--
End Sub
>>
purtroppo dalle specifiche tecniche è riportato che il metodo restituisce un tipo di dato strutturato, ma in realtà non è cosi, di conseguenza quando va in errore mi va in exeption e sulla Catch e_006 As FaultException
Grazie mille per l'attenzione