2016-01-31 14 views
5

Sunucu App.config tarih: i yöntemi factory.CreateChannel() çağırdığınızdaWCF: Sağlanan URI şeması 'https' geçersiz; beklenen 'http'. Parametre adı: IInternal proxy = fabrikayı aradığımda via.Channel(); Müşteri

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.web> 
    <compilation debug="true"/> 
    </system.web> 
    <system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="NewBehaviour"> 
      <serviceMetadata httpsGetEnabled="True"/> 
      <serviceDebug includeExceptionDetailInFaults="True"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <bindings> 
     <wsHttpBinding> 
     <binding name="Binding"> 
      <security mode="Transport"> 
      <transport clientCredentialType="None"></transport> 
      </security> 
     </binding> 
     </wsHttpBinding> 
    </bindings> 

    <services> 
     <service name="Server.InternalClass" behaviorConfiguration="NewBehaviour"> 
     <endpoint address="IInternal" binding="wsHttpBinding" bindingConfiguration="Binding" contract="Common.IInternal"> 
      <identity> 
      <dns value="MyMachine"/> 
      </identity> 
     </endpoint> 
     <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/> 
     <host> 
      <baseAddresses> 
      <add baseAddress="https://MyMachine:8733/"/> 
      </baseAddresses> 
     </host> 
     </service> 
    </services> 
    </system.serviceModel> 


</configuration> 

Müşteri

static ChannelFactory<IInternal> factory = new ChannelFactory<IInternal>(new WSHttpBinding(), new EndpointAddress("https://MyMachine:8733/IInternal")); 

i

ben sertifikayı

enter image description here yapılandırmak hata olsun

+0

hizmet düzgün başlıyor? İstemcinin app.config dosyasındaki istemci için hangi konfigürasyonunuz var? –

+0

Servis doğru şekilde başlatılıyor. İstemci için dosyam yok. – user3661837

cevap

3

İstemciye http yerine https kullanması için güvenli bir aktarım kanalı kullanmasını söylemelisiniz. Bu doğrudur çünkü istemcide ciltleme ayarları servis tarafındakilerle eşleşmelidir.

Sen müşterinin app.config dosyasında yapılandırma ile bunu yapabilir veya böyle kodu aracılığıyla yapabilirsiniz:

var ws_http_binding = new WSHttpBinding(); 

ws_http_binding.Security.Mode = SecurityMode.Transport; 

ChannelFactory<IInternal> factory = 
    new ChannelFactory<IInternal>(
     ws_http_binding, 
     new EndpointAddress("https://MyMachine:8733/IInternal")); 

var channel = factory.CreateChannel(); 
+0

Çok teşekkür ederim! İşe yarıyor! :)) – user3661837

+0

Bir şey değil –

İlgili konular