web-dev-qa-db-fra.com

C # Le schéma d'URI fourni 'http' n'est pas valide; attendu 'https'

Je reçois cette erreur en appelant une méthode de mon service Web, je ne sais plus quoi faire: s

Voici les détails de l'exception:

{"Le schéma d'URI fourni 'http' est invalide; attendu 'Https'.\R\nNom du paramètre: via"}

Voici mon App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

    <connectionStrings>
      <add name="PowerWeb" connectionString="Data Source=MYSERVER;Initial Catalog=MYTABLE;User ID=MYUSER;Password=MYPW" providerName="System.Data.SqlClient" />
    </connectionStrings>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
    <system.serviceModel>



      <bindings>
        <customBinding>
          <binding name="ZWS_HARMONIZACAO">
            <!--    WsdlImporter encountered unrecognized policy assertions in ServiceDescription 'urn:sap-com:document:sap:rfc:functions':    -->
            <!--    <wsdl:binding name='ZWS_HARMONIZACAO'>    -->
            <!--        <saptrnbnd:OptimizedXMLTransfer xmlns:saptrnbnd="http://www.sap.com/webas/710/soap/features/transportbinding/">..</saptrnbnd:OptimizedXMLTransfer>    -->
            <!--        <saptrnbnd:OptimizedXMLTransfer xmlns:saptrnbnd="http://www.sap.com/webas/710/soap/features/transportbinding/">..</saptrnbnd:OptimizedXMLTransfer>    -->
            <!--        <sapattahnd:Enabled xmlns:sapattahnd="http://www.sap.com/710/features/attachment/">..</sapattahnd:Enabled>    -->
            <textMessageEncoding messageVersion="Soap11" />

            <httpsTransport authenticationScheme="Basic"  />


          </binding>
        </customBinding>
      </bindings>
        <client>
            <endpoint address="http://mydomain:8080/sap/bc/srt/rfc/sap/zws_harmonizacao/010/zws_harmonizacao/zws_harmonizacao"
                binding="customBinding" bindingConfiguration="ZWS_HARMONIZACAO"
                contract="ServiceReference1.ZWS_HARMONIZACAO" name="ZWS_HARMONIZACAO" />
        </client>

    </system.serviceModel>
</configuration>

Quelqu'un peut-il m'aider? Merci beaucoup d'avance 

8
TiagoM

Vous spécifiez httpsTransport dans la liaison, mais dans la définition du noeud final, vous fournissez http en tant que protocole. Comme suggéré dans le commentaire, essayez de changer le <endpoint address="http://... en https 

6
Honza Brestan

J'ai changé la configuration de la liaison comme ceci:

 var binding = new BasicHttpBinding(BasicHttpSecurityMode.None);
 var address = new EndpointAddress(url);
 var client = new MobileServiceClient.MobileServiceClient(binding, address);

L'adresse du noeud final est comme:

http: //server101.local/MobileService.svc

Et il fonctionne.

3
DanielV

J'ai eu le même problème y un projet. Dans votre fichier de configuration, changez simplement la ligne:

<httpsTransport authenticationScheme="Basic"  />

à

<httpTransport authenticationScheme="Basic"  />

Et tout va bien, parce que votre point de terminaison est http. 

1
Carlos

Changement de Transport à Aucun

  1. Si la configuration fait partie du code

BasicHttpSecurityMode.Transport à BasicHttpSecurityMode.None

2.Si la configuration fait partie de web.config

<security mode="Transport"> </security>

à

<security mode="None">  
</security>
0
Nagarjun Natekar