Bu dikişler ortak bir sorun olmaktan çıkmıştı ve ben burada tüm cevaplara baktım ama hiçbiri yardımcı olmadı.HTTP isteği, istemci kimlik doğrulama şeması 'Anonim' ile yasaklandı 'Anonim'
SSL, iis üzerinde barındırılan basichttpbinding ve WCF hizmeti ile çalışmak için çalışıyorum. Sorun iis ya da sertifikalarda olduğunu düşünüyorum. Iis yöneticisinde kendinden imzalı bir sertifika oluşturdum. Sertifikama "bilgisayarım" denir ve ayrıca Güvenilir Kök Sertifikasyonuna da yerleştirilmiştir. İstemcinin sertifikayı bulmakta herhangi bir sorunu yoktur.
iis'teki ayarlarım anonim olarak etkinleştirmek ve diğer her şeyi devre dışı bırakmak içindir. Ayrıca SSL gerektirir ve istemci sertifikası kabul edilir. Bu doğru mu? Görmezden gelmeyi seçersem hata olurum.
Yapılarımda yanlış bir şey göremiyorum, bunlar doğru mu?
Servis yapılandırma:
<system.serviceModel>
<services>
<service behaviorConfiguration="MyBehaviour" name="BasicHttpSecTest.Service1">
<endpoint name="MyEndPoint" address="https://mycomputer/wp/" binding="basicHttpBinding" bindingConfiguration="ClientCertificateTransportSecurity" contract="BasicHttpSecTest.IService1" />
<!--<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />-->
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyBehaviour">
<serviceMetadata httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceCredentials>
<clientCertificate>
<authentication certificateValidationMode="PeerOrChainTrust" revocationMode="NoCheck"/>
</clientCertificate>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="ClientCertificateTransportSecurity">
<security mode="Transport">
<transport clientCredentialType="Certificate" />
</security>
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
Müşteri Yapılandırma:
<system.serviceModel>
<client>
<endpoint address="https://mycomputer/wp/Service1.svc" binding="basicHttpBinding"
bindingConfiguration="MyEndPoint" contract="ServiceSSLref.IService1"
name="MyEndPoint1" behaviorConfiguration="ClientCertificateCredential"/>
</client>
<bindings>
<basicHttpBinding>
<binding name="MyEndPoint">
<security mode="Transport">
<transport clientCredentialType="Certificate" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="ClientCertificateCredential">
<clientCredentials>
<clientCertificate findValue="mycomputer" storeLocation="LocalMachine" storeName="My" x509FindType="FindByIssuerName" />
<serviceCertificate>
<authentication certificateValidationMode="PeerOrChainTrust" revocationMode="NoCheck"/>
</serviceCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
Teşekkürler, bu hata için bir çözüm olabilirdi. Ancak, "Uzak sunucu beklenmeyen bir yanıt verdi: (405) Yöntem İzin Verilmedi." Aynı aşamada, daha iyi veya daha kötü olduğundan emin değilim. – Zeezer
Sözleşme arayüzünüzde genel anahtar kelimeniz olup olmadığını kontrol edin. Ve unutmayın: C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319> ServiceModelReg.exe -i – Alex
Çok teşekkürler! Bu problemle günlerce oturuyordum. Şimdi çalışma ve son sorun kolay bir düzeltmekti. Adresim https: //mycomputer/wp/Service1.svc ve https: // mycomputer/wp/olmalıdır. – Zeezer