Bonjour, j'utilise un web service afin d'envoyer un fichier, juste avant, je dois m'identifier à l'aide du WSE Security usernameToken, le problème que j'ai, c'est que " l'entête de sécurité est incorrecte", d'après ce que j'ai compris, mon soucis vient du fait que mon fichier app.config n'est pas formaté comme il le devrait, le mien se présente ainsi:
Pour l'envoi en production : https://www.sunat.gob.pe/ol-ti-itcpgem/billService?wsdlCode:<?xml version="1.0"?> <configuration> <configSections> </configSections> <system.diagnostics> <sources> <!-- Cette section définit la configuration de l'enregistrement dans le fichier journal de My.Application.Log --> <source name="DefaultSource" switchName="DefaultSwitch"> <listeners> <add name="FileLog"/> <!-- Supprimez les marques de commentaire dans la section suivante pour écrire dans le journal des événements de l'application --> <!--<add name="EventLog"/>--> </listeners> </source> </sources> <switches> <add name="DefaultSwitch" value="Information"/> </switches> <sharedListeners> <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/> <!-- Supprimez les marques de commentaire dans la section suivante et remplacez APPLICATION_NAME par le nom de votre application à écrire dans le journal des événements de l'application --> <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> --> </sharedListeners> </system.diagnostics> <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup> <system.serviceModel> <bindings> <basicHttpBinding> <binding name="BillServicePortBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"> <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> <security mode="Transport"> <transport clientCredentialType="None" proxyCredentialType="None" realm="" /> <message clientCredentialType="UserName" algorithmSuite="Default" /> </security> </binding> </basicHttpBinding> </bindings> <client> <endpoint address="https://www.sunat.gob.pe:443/ol-ti-itcpgem/billService" binding="basicHttpBinding" bindingConfiguration="BillServicePortBinding" contract="Production.billService" name="BillServicePort" /> </client> </system.serviceModel> </configuration>
Pour l'envoi par homologation : https://www.sunat.gob.pe/ol-ti-itcpg...llService?wsdl
Et voici mon code VB:
MerciCode:Dim file As String = "MonFichierAEnvoyer.zip" Dim [/contents/1347-wsh-objet-wshnetwork userName] As String = "IdIdentification" Dim pwd As String = "PWDIdentification" Dim local_filereceived As String = "R-" & file Dim zip As New ICSharpCode.SharpZipLib.Zip.FastZip System.Net.ServicePointManager.UseNagleAlgorithm = True System.Net.ServicePointManager.Expect100Continue = False System.Net.ServicePointManager.CheckCertificateRevocationList = True Try Dim data As Byte() = System.IO.File.ReadAllBytes(file) Dim ws As New Production.billServiceClient Dim Retour As Byte() ws.ClientCredentials.CreateSecurityTokenManager() ws.ClientCredentials.UserName.UserName = userName ws.ClientCredentials.UserName.Password = pwd ws.Open() 'envoi du fichier ZIP à la SUNAT Retour = ws.sendBill(local_filereceived, data) 'la réponse System.IO.File.WriteAllBytes(local_filereceived, Retour) 'décompresser zip.ExtractZip(local_filereceived, ".", "") 'supprimer les fichiers ZIP ainsi eus System.IO.File.Delete(local_filereceived) System.IO.File.Delete(local_filereceived) Catch ex As Exception MsgBox(ex.Message) End Try
-----