2017-12-20 14 views
0

Soap Webサービスを使用するときにこのエラーが発生します。このようなグーグルながら、私は多くの提言を試みた:クライアント認証スキーム '匿名'&URIスキーム 'https'で不正です。 expected '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> 

WebサービスのエンドポイントがあるアンダーHTTPSと、ここで私のC#コード:

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()); 

私は行をコメントbasicHttpBinding.Security.Mode =BasicHttpSecurityMode.Transport;返すメッセージの変更およびI get: 詳細:指定されたURIスキーム 'https'は無効です。期待される 'http'。 パラメータ名:via。

ご了承ください。

答えて

0

同じ問題がある場合。使用されたコードは次のとおりです。

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(); 
関連する問題