La complettezza delle classi messe a disposizione del .NET Framework hanno abituato ormai lo svilupatore ad ignorare alcuni aspetti di più basso livello come quelli del sistema operativo su cui il codice gira. Tra le classi che si è soliti usare vi sono HttpWebRequest, FtpWebRequest e SmtpClient, e la prima tra queste viene sfruttata da tutte quelle classi che caricano uri, come XmlDocument, XDocument, client di servizi web, perciò è molto importante. Tutte queste classi fanno capo al tipo ServicePointManager del namespace System.Net che fa da tramite con il servizio iNet di Windows, il quale effettua fisicamente le connessioni TCP.
Tramite esso è possibile controllare alcuni aspetti centrali riguardanti le connessioni. Per esempio esiste un limite sul numero massimo di connessioni concorrenti che si possono effettuare il cui valore predefinito è due. Se si supera questo limite, il chiamante resta in attese di ottenere una connessione valida. E' possibile intervenire su questo valore (in ASP.NET è portato a 10) attraverso la proprietà DefaultConnectionLimit.
E' possibile inoltre specificare il tempo massimo di validità di un record Dns, se controllare la revocation list dei certificati o impostare un callback per validare i certificati ogni qual volta che si effettuano connessioni HTTPS:
ServicePointManager.CheckCertificateRevocationList = true; // Imposto 20 connessioni massime ServicePointManager.DefaultConnectionLimit = 20; // Validità timeout: 5 minuti ServicePointManager.DnsRefreshTimeout = 5*60*1000; // Callback per restituire la validità di un certificato ServicePointManager.ServerCertificateValidationCallback = delegate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { // Tutti i certificati sono validi return true; };
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Sfruttare l'output cache di ASP.NET Core 7 con i controller
Usare ASP.NET Core dev tunnels per testare le applicazioni su internet
Gestire tipi complessi in query string grazie a IParsable in ASP.NET Core 7.0
Definire la durata dell'output cache in ASP.NET Core 7
Gestire la query string nell'output cache di ASP.NET Core
Taggare la output cache in base al routing in ASP.NET Core
Utilizzare la libreria Benchmark.NET per misurare le performance
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Migliorare la scalabilità di ASP.NET Core 7 grazie all'output cache
Catturare la telemetria degli eventi di output cache in ASP.NET Core
Cache policy su route groups di Minimal API in ASP.NET Core 7
Utilizzare parametri a livello di controller nel routing di ASP.NET Core