“Could not load file or assembly System.Net.Http, Version=4.0.0.0” Hatası | C#

Merhaba, .net 4.6.1 kullanan birkaç projeyi 4.7.1’e geçirmek istedim.
Aslında konunun başlangıcı “Could not create SSL/TLS secure channel.” hatasıydı.
Neyse, bu hatayı araştırırken 4.6 framework’ünde sunucudaki geçerli protokolü kullandığına dair bir yazı okudum.
Yani bizim atadığımız protokolü hesaba almıyor arkadaş.
Yazıda bir kaç yöntem önermişti.
Bir tanesi de 4.7’ye geçebilirsiniz idi.
Ben de demirden korksam trene binmezdim diyerek tüm projeleri 4.7.1’e çevirdim.
Ama bu sefer de; “Could not load file or assembly System.Net.Http, Version=4.0.0.0” hatası aldım.
Bunun da Web.Config içerisindeki yönlendirmelerle ilgili olduğunu öğrendim araştırmalar sonucunda.
Bu yönlendirmeleri de yeniden oluşturmanın bir yolu varmış.
Bir gün benim ya da başkasının ihtiyacı olursa diyerek buraya ekliyorum.
Web.Config’te “runtime” nodunun altında “assemblyBinding” nodunu komple yorum yaptım.
İsterseniz silebilirsiniz yedeğini bir yere alıp.
Sonra da; Package Manager Console açıp;

Get-Project –All | Add-BindingRedirect

komutunu yazıp çalıştırdım.
Tüm o yönlendirmeler yeniden eklendi.
Ve Solution altındaki tüm projeler çalıştı.

SSl hatası ile ilgili tavsiye edilen değişiklikleri şu şekilde yaptım:

            ServicePointManager.Expect100Continue = true;
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
                               | SecurityProtocolType.Tls11
                               | SecurityProtocolType.Tls12
                               | SecurityProtocolType.Ssl3;
            ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

Normalde herkeste problemi çözmüş bunlar ama bende çözmedi. Sunucudaki sertifika ile ilgili olabilir demiş bazıları.
Doğru olabilir, çünkü başka bir sunucuda çalıştı. Hatayı henüz çözemedim ama projeleri 4.7.1′ geçirmiş olduk bu vesileyle. 🙂

Selamlar.



Leave a Reply

Your email address will not be published. Required fields are marked *