Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Microsoft.Data.SqlClient-verbindingsopties bepalen hoe de driver een verbinding tot stand brengt, identificeert, routeert, opnieuw tot stand probeert te brengen en in een pool opneemt. Stel ze in een verbindingsreeks in of via overeenkomende SqlConnectionStringBuilder eigenschappen.
Voor Microsoft Entra ID-authenticatie, zie Microsoft Entra ID authenticatie. Voor TLS-instellingen, zie Versleuteling en certificaatvalidatie.
Instellingen instellen met SqlConnectionStringBuilder
Gebruik de builder in plaats van fragmenten van verbindingsreeks aan elkaar te koppelen:
var builder = new SqlConnectionStringBuilder
{
DataSource = "tcp:sql.example.com,1433",
InitialCatalog = "Orders",
IntegratedSecurity = true,
Encrypt = SqlConnectionEncryptOption.Mandatory,
ApplicationName = "Orders.Worker",
ConnectTimeout = 30,
ConnectRetryCount = 3,
ConnectRetryInterval = 10,
MultiSubnetFailover = true,
};
De code gebruikt namen van bouwerwoningen. De tabellen gebruiken de gebruikelijke spelling van de verbindingsreeks. De chauffeur accepteert ook gedocumenteerde aliassen.
Opties voor time-out
| Keyword | Default | Gedrag | Versie |
|---|---|---|---|
Connect Timeout |
15 seconden | Beperkt de tijd om een verbinding te maken. Wanneer de pool op Max Pool Sizeis, beperkt het ook de wachttijd op een bruikbare poolverbinding.
Connection Timeout en Timeout aliassen zijn. |
Alle Microsoft. Data.SqlClient-versies |
Command Timeout |
30 seconden | Stelt de standaard time-out in voor commando's die aan de verbinding zijn gekoppeld. Stel CommandTimeout in voor een commando als een bewerking een andere limiet nodig heeft. Een waarde van 0 heeft geen tijdslimiet en kan werk onbeperkt laten wachten. |
Microsoft. Data.SqlClient 2.1 en latere versies |
Verbindings- en commando-timeouts meten verschillend werk.
Connect Timeout Beperkt de uitvoering van zoekopdrachten niet.
Command Timeout Beperkt authenticatie of het wachten op een gepoolde verbinding niet.
A CancellationToken staat los van beide instellingen. Geef het door aan OpenAsync, commando-uitvoering en lezersmethoden, zodat de aanroeper kan stoppen met wachten voordat een timeout verloopt.
Workload-identiteit en routeringsopties
| Keyword | Default | Gedrag | Versie |
|---|---|---|---|
Application Name |
door de aanbieder gedefinieerde naam | Identificeert de werklast in SQL Server-sessies, auditing en diagnostiek. Gebruik één stabiele naam met lage cardinaliteit voor elke gedeployde workload. | Alle Microsoft. Data.SqlClient-versies |
Application Intent |
ReadWrite |
ReadOnly vraagt routering voor leesintentie aan wanneer het doel en de beschikbaarheidsgroep daarvoor zijn geconfigureerd. Het maakt SQL-instructies niet alleen-leesbaar. |
Alle Microsoft. Data.SqlClient-versies |
Application Intent=ReadOnly Normaal gesproken wordt deze gekoppeld aan een availability group listener of een service-endpoint dat read routing ondersteunt. Zie Hoge beschikbaarheid en rampenherstel.
Netwerk- en pakketopties
| Keyword | Default | Gedrag | Versie |
|---|---|---|---|
Packet Size |
8.000 bytes | Stelt de pakketgrootte van de Tabular Data Stream (TDS) in het netwerk. Ondersteunde waarden zijn 512 tot en met 32.768 bytes. Houd de standaard, tenzij workloadmetingen en serverconfiguratie een wijziging rechtvaardigen. | Alle Microsoft. Data.SqlClient-versies |
MultiSubnetFailover |
false |
Gebruikt parallelle TCP-verbindingspogingen met IP-adressen die worden teruggegeven voor een eindpunt met meerdere adressen. Stel het in op true voor Azure SQL-endpoints, availability group listeners en failover-clusterinstanties die via TCP worden bereikt. |
Alle Microsoft. Data.SqlClient-versies |
MultiSubnetFailover=true wordt niet ondersteund voor benoemde instanties, andere protocollen dan TCP, databasespiegeling of eindpunten die zijn geconfigureerd met meer dan 64 IP-adressen. Het is veilig voor een single-IP TCP-endpoint.
Microsoft. Data.SqlClient 7.0 heeft ook een procesbrede AppContext-schakelaar die elke verbinding kan laten functioneren alsof MultiSubnetFailover=true. De standaard verbindingsreeks blijft false wanneer die switch niet is ingeschakeld. Zie AppContext-switches in SqlClient.
Poolopties
| Keyword | Default | Gedrag | Versie |
|---|---|---|---|
Pooling |
true |
Hergebruikt fysieke verbindingen om aansluitingsconfiguraties te matchen. Schakel het alleen uit voor diagnose of een gemeten werklast die niet veilig kan worden gepoold. | Alle Microsoft. Data.SqlClient-versies |
Min Pool Size |
0 |
Behoudt ten minste dit aantal fysieke verbindingen in een pool nadat de pool is aangemaakt. Een positieve waarde kan databasesessies open houden totdat de pool of het proces eindigt. | Alle Microsoft. Data.SqlClient-versies |
Max Pool Size |
100 |
Begrenst fysieke verbindingen in één pool. Verzoeken wachten tot Connect Timeout het zwembad vol is. |
Alle Microsoft. Data.SqlClient-versies |
Load Balance Timeout |
0 Seconden |
Gooi een verbinding weg wanneer deze terugkeert naar de pool als de leeftijd deze waarde overschrijdt.
Connection Lifetime is een alias.
0 Schakelt leeftijdsgebaseerde verwijdering uit. |
Alle Microsoft. Data.SqlClient-versies |
Pool Blocking Period |
Auto |
Bepaalt of de pool een in de cache opgeslagen aanmeldingsfout tijdelijk opnieuw genereert.
Autoschakelt de blokkeringsperiode uit voor herkende Azure SQL-endpoints en schakelt deze in voor andere endpoints. |
Alle Microsoft. Data.SqlClient-versies |
Enlist |
true |
Neemt een geopende verbinding automatisch op in de omringende System.Transactions transactie. |
Alle Microsoft. Data.SqlClient-versies |
Poolinstellingen gelden voor elke afzonderlijke pool, niet voor het hele proces of de databaseserver. Voordat u ophaalt Max Pool Size, bevestig dat verbindingen en lezers snel worden verwijderd en dat de database het resulterende totaal over elke applicatieinstantie kan accepteren.
Voor poolsleutels, tokengedrag, blokkeringsperioden, clearing en diagnostiek, zie SQL Server connection pooling.
Opties voor verbindingsherstel
| Keyword | Default | Gedrag | Versie |
|---|---|---|---|
Connect Retry Count |
1 |
Stelt het aantal retry in voor het kwalificeren van tijdelijke storingen tijdens de eerste verbinding en voor het herstellen van een verbroken idle verbinding. De effectieve standaard is 2 voor erkende Azure SQL-eindpunten en 5 voor erkende Azure Synapse- en on-demand eindpunten.
0 Schakelt deze herpogingen uit. |
Alle Microsoft. Data.SqlClient-versies |
Connect Retry Interval |
10 seconden | Stelt de vertraging in voordat latere pogingen tot de initiële verbinding of herstelpogingen na inactiviteit worden gedaan. Geldige waarden zijn 1 tot en met 60 seconden. | Alle Microsoft. Data.SqlClient-versies |
De eerste herpoging tijdens het herstel van de verbinding is onmiddellijk.
Connect Retry Interval Van toepassing vóór latere pogingen. Om de ingebouwde initiële open herpoging voor één bewerking te omzeilen, gebruik je een open overload met OpenWithoutRetry.
Deze sleutelwoorden proberen een commando dat mislukt terwijl het wordt uitgevoerd niet opnieuw uit te voeren. Gebruik configureerbare herkansingslogica voor een aangepast open- of commandobeleid. Voer opdrachten alleen opnieuw uit wanneer de gevolgen ervan veilig kunnen worden herhaald.
Serveridentiteit en certificaatopties
Deze opties lossen specifieke naamgevingsvereisten voor certificaten of Kerberos op. Ze vervangen de normale authenticatie en certificaatvalidatie niet.
| Keyword | Default | Gedrag | Versie |
|---|---|---|---|
Host Name In Certificate |
Serverhostnaam | Geeft de verwachte Common Name (CN) of Subject Alternative Name (SAN) wanneer de verbinding een DNS-alias gebruikt die verschilt van het certificaat. | Microsoft. Data.SqlClient 5.0 en latere versies |
Server Certificate |
Leeg | Levert een PEM-, DER- of CER-bestand dat exact overeenkomt met het servercertificaat wanneer Encrypt=Mandatory of Encrypt=Strict. |
Microsoft. Data.SqlClient 5.1 en latere versies |
Server SPN |
Afgeleid van de servernaam | Overschrijft de Service Principal Name (SPN) die wordt gebruikt voor geïntegreerde authenticatie naar de primaire server. Configureer het alleen wanneer de geïmplementeerde Kerberos-naam een expliciet SPN vereist. | Microsoft. Data.SqlClient 5.0 en latere versies |
Failover Partner SPN |
Afgeleid van de failoverpartner | Overschrijft de SPN voor een database-mirroring failoverpartner. Databasespiegeling is verouderd. Gebruik beschikbaarheidsgroepen voor nieuwe deployments. | Microsoft. Data.SqlClient 5.0 en latere versies |
Host Name In Certificate verandert de naam die wordt gebruikt voor certificaatmatching. Het vertrouwt een niet-vertrouwde uitgever niet.
Server Certificate pint een exact certificaatbestand en vereist een applicatie-update wanneer dat certificaat roteert.
Onjuiste SPN-overrides kunnen Kerberos-authenticatie verhinderen of de beoogde identiteitscontrole verzwakken. Corrigeer DNS- en SPN-registraties in plaats van uitzonderingen in te stellen, indien mogelijk.
Houd de verbindingslijnen klein. Voeg alleen een optie toe als je kunt aangeven welk gedrag het verandert en hoe de werklast dat gedrag verifieert.
Wijzigingen in de optie bekijken
Voordat je een optie in productie verandert:
- Noteer de huidige verbindingsreeks, driverversie, eindpunttype en waargenomen probleem.
- Verander één gedrag tegelijk.
- Test verbindingsopbouw, authenticatie, certificaatvalidatie, pooling, failover, annulering en het uitvoeren van query's.
- Meet harde verbindingen, poolwachttijden, verbindingslatentie en foutgetallen.
- Bevestig de instelling op elke gedeployeerde instantie.
Verbindingsstrings maken deel uit van de poolsleutel. Een gefaseerde uitrol kan tijdelijk zowel oude als nieuwe pools creëren, wat het totale aantal fysieke databaseverbindingen verhoogt.