2017-12-20 6 views
0

Soap webservice를 사용할 때이 오류가 발생합니다. 같은 인터넷 검색을하는 동안 나는 많은 추천을 시도했다 :클라이언트 인증 스키마 '익명'및 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> 

웹 서비스 엔드 포인트는 언더 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; 복귀 메시지 변화와 나는 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(); 
관련 문제