Merhaba bu yazıda sizlere “temel alınan bağlantı kapatıldı gönderme işleminde beklenmeyen hata oluştu”  hatası alıyorsanız ne yapmanız gerektiğini açıklayacağım.

ServicePointManager Sınıfı

ServicePointManager, .NET Framework’te yerleşik bir sınıftır ve .NET uygulamaları tarafından yapılan HTTP isteklerinin yönetimini sağlar. Bu sınıf, aynı sunucuya yapılan isteklerin yeniden kullanımını optimize ederek ağ performansını artırır.

ServicePointManager sınıfı, aşağıdaki gibi çeşitli özelliklere sahiptir:

KeepAlive: Bu özellik, bir ServicePoint nesnesi tarafından yönetilen bağlantıların yeniden kullanılabilmesini sağlar.
ConnectionLimit: Bu özellik, ServicePoint tarafından aynı anda yönetilen maksimum bağlantı sayısını belirler.
Expect100Continue: Bu özellik, sunucuya gönderilen isteğin gövdesinin ne zaman gönderileceğini belirler.
UseNagleAlgorithm: Bu özellik, ServicePoint tarafından kullanılan TCP protokolünde Nagle algoritmasını etkinleştirir veya devre dışı bırakır.
Proxy: Bu özellik, ServicePoint tarafından kullanılan proxy sunucunun adresini belirler.
ServicePointManager, ayrıca HTTPS bağlantıları için SSL/TLS sertifikalarını doğrulamak ve güvenli bağlantılar kurmak için kullanılabilir.

Bu özelliklerin yanı sıra ServicePointManager sınıfı, uygulamanızın farklı HTTP isteklerini farklı ServicePoint nesneleri üzerinden yönetmesine izin verir. Bu, özellikle farklı isteklerin farklı sunuculara veya aynı sunucuya farklı bağlantı noktalarına gönderildiği durumlarda faydalıdır.

Şimdi gelelim hatayı düzeltmeye

Kütüphanemizi ekleyelim.

using System.Net;

kütüphaneyi ekledikten sonra diğer webistesinden veri çekmeye başlamadan önce güvenlik protokolümüzü belirten kodu ekleyelim.

ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

NOT: Eğer Tls12 hata verirse .NET Framework versiyonu 4.5 olarak ayarlayın.