2017-12-20 4 views
0

Ich bekomme diesen Fehler beim Konsumieren eines Soap-Webservice. Ich habe viele Empfehlungen versucht, während googeln wie:nicht autorisiert mit Client-Authentifizierungsschema 'Anonymous' & URI Schema 'https' ist ungültig; erwartet 'http'

<security mode="Transport"> 
     <transport clientCredentialType="Certificate" proxyCredentialType="None" realm="weblogic" /> 
     <message clientCredentialType="UserName" algorithmSuite="Default" /> 
     </security> 

<security mode="Transport"> 
     <transport clientCredentialType="None" proxyCredentialType="None" realm="" /> 
     <message clientCredentialType="UserName" algorithmSuite="Default" /> 
     </security> 

    <security mode="TransportCredentialOnly"> 
     <transport clientCredentialType="None" proxyCredentialType="None" realm="" /> 
     <message clientCredentialType="UserName" algorithmSuite="Default" /> 
     </security> 

der Webservice-Endpunkt ist Unders https und hier ist mein C# -Code:

BasicHttpBinding basicHttpBinding = new BasicHttpBinding(); 
      basicHttpBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate; 
      basicHttpBinding.Security.Mode = BasicHttpSecurityMode.Transport; 

      CustomerPortTypeClient client = new CustomerPortTypeClient(basicHttpBinding, 
       new EndpointAddress("https:.......")); 
      client.ClientCredentials.UserName.UserName = ConfigurationManager.AppSettings["username"].ToString(); 
      client.ClientCredentials.UserName.Password = ConfigurationManager.AppSettings["userpwd"].ToString(); 
      client.ClientCredentials.ClientCertificate.Certificate = new X509Certificate2(ConfigurationManager.AppSettings["servercertfilepath"].ToString()); 

wenn ich die Linie basicHttpBinding.Security.Mode =BasicHttpSecurityMode.Transport; die zurückkehrenden Nachricht Änderungen und i Kommentar get: Details: Das angegebene URI-Schema 'https' ist ungültig; erwartet 'http'. Parametername: via.

alle Ratschläge oder Empfehlungen würden uns freuen.

Antwort

0

Für diejenigen, die das gleiche Problem haben. Hier ist der Code verwendet das Problem passieren:

BasicHttpBinding basicHttpBinding = new BasicHttpBinding(); 
      basicHttpBinding.Security.Mode = BasicHttpSecurityMode.Transport; 
      basicHttpBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic; 
      basicHttpBinding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None; 
      basicHttpBinding.Security.Transport.Realm = "weblogic"; 
      basicHttpBinding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.Certificate; 
      CustomerPortTypeClient client = new CustomerPortTypeClient(basicHttpBinding, 
       new EndpointAddress("https:.....")); 
      client.ClientCredentials.ClientCertificate.Certificate = new X509Certificate2(ConfigurationManager.AppSettings["servercertfilepath"].ToString()); 
      client.ClientCredentials.UserName.UserName = ConfigurationManager.AppSettings["username"].ToString(); 
      client.ClientCredentials.UserName.Password = ConfigurationManager.AppSettings["userpwd"].ToString(); 
Verwandte Themen