در نسخه جدید NET 9.، رفتار پیشفرض HttpClientFactory تغییر کرده است و بهجای استفاده از
HttpClientHandler از SocketsHttpHandler بهعنوان هندلر اصلی استفاده میشود (البته در پلتفرمهایی که قابلیت پشتیبانی داشته باشند).🔧 این تغییر باعث میشود تا کدهایی که قبلاً هندلر را به
HttpClientHandler تبدیل میکردند، با خطای InvalidCastException مواجه شوند.مثلا کد زیر خطایی که گفته شد را خواهد داد:
services.AddHttpClient("test")
.ConfigurePrimaryHttpMessageHandler((h, _) =>
{
((HttpClientHandler)h).UseCookies = false;
});✅ دلیل این تغییر؟ بهبود مدیریت اتصالها و حل مشکلات مربوط به تغییرات DNS در کلاینتهای Singleton. اکنون
SocketsHttpHandler با ویژگی PooledConnectionLifetime بهطور پیشفرض تنظیم میشود تا اتصالها بهصورت دورهای بازسازی شوند.🔗 توضیحات تکمیلی را اینجا بخوانید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______