Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Microsoft. Data.SqlClient-anslutningsalternativ styr hur drivrutinen etablerar, identifierar, routar, försöker om och poolar en anslutning. Ange dem i en anslutningssträng eller via motsvarande SqlConnectionStringBuilder egenskaper.
För Microsoft Entra ID-autentisering, se Microsoft Entra ID-autentisering. För TLS-inställningar, se Kryptering och certifikatvalidering.
Sätt inställningar med SqlConnectionStringBuilder
Använd buildern istället för att sammanfoga fragment av reťazec pripojenia:
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,
};
Koden använder byggarens egenskapsnamn. Tabellerna använder vanliga stavningar i reťazec pripojenia. Föraren accepterar också dokumenterade alias.
Timeout-alternativ
| Keyword | Standardinställning | Behavior | Version |
|---|---|---|---|
Connect Timeout |
15 sekunder | Det begränsar tiden att etablera en kontakt. När poolen är på Max Pool Size, begränsar den också väntan på en användbar poolad anslutning.
Connection Timeout och Timeout är alias. |
Alla Microsoft. Data.SqlClient-versioner |
Command Timeout |
30 sekunder | Sätter standardtimeout för kommandon kopplade till anslutningen. Ställ CommandTimeout in på ett kommando när en operation kräver en annan gräns. Ett värde på 0 har ingen tidsgräns och kan lämna arbetet väntande på obestämd tid. |
Microsoft. Data.SqlClient 2.1 och senare versioner |
Anslutnings- och kommandotidsgränser avser olika typer av arbete.
Connect Timeout Det begränsar inte frågeexekveringen.
Command Timeout Det begränsar inte autentisering eller väntan på en poolad anslutning.
En CancellationToken är separat från båda inställningarna. Skicka den till OpenAsync, kommandoexekvering och läsarmetoder så att anroparen kan sluta vänta innan en timeout går ut.
Arbetslastsidentitet och routningsalternativ
| Keyword | Standardinställning | Behavior | Version |
|---|---|---|---|
Application Name |
Leverantörsdefinierat namn | Identifierar arbetsbelastningen i SQL Server-sessioner, revision och diagnostik. Använd ett stabilt namn med låg kardinalitet för varje driftsatt arbetsbelastning. | Alla Microsoft. Data.SqlClient-versioner |
Application Intent |
ReadWrite |
ReadOnly begär routning för läsintention när målet och tillgänglighetsgruppen är konfigurerade för det. Det gör inte SQL-satserna skrivskyddade. |
Alla Microsoft. Data.SqlClient-versioner |
Application Intent=ReadOnly kopplas vanligtvis ihop med en tillgänglighetsgrupplyssnare eller en tjänstslutpunkt som stöder läsroutning. Se Hög tillgänglighet och katastrofåterställning.
Nätverks- och paketalternativ
| Keyword | Standardinställning | Behavior | Version |
|---|---|---|---|
Packet Size |
8 000 byte | Sätter paketstorleken för Tabular Data Stream (TDS). Stödda värden är 512 till 32 768 byte. Behåll standardinställningen om inte arbetsbelastningsmätningar och serverkonfiguration motiverar en ändring. | Alla Microsoft. Data.SqlClient-versioner |
MultiSubnetFailover |
false |
Använder parallella försök att upprätta TCP-anslutningar till IP-adresser som returneras för en slutpunkt med flera adresser. Ställ in den till true för Azure SQL-endpoints, tillgänglighetsgruppslyssnare och failover-klusterinstanser som nås över TCP. |
Alla Microsoft. Data.SqlClient-versioner |
MultiSubnetFailover=true stöds inte med namngivna instanser, icke-TCP-protokoll, databasspegling eller endpoints konfigurerade med fler än 64 IP-adresser. Det är säkert för en TCP-endpoint med en enda IP.
Microsoft. Data.SqlClient 7.0 har också en processomfattande AppContext-switch som kan få varje anslutning att bete sig som om MultiSubnetFailover=true. Anslutningssträngen förblir false som standard när den inställningen inte är aktiverad. Se AppContext-switchar i SqlClient.
Alternativ för poolning
| Keyword | Standardinställning | Behavior | Version |
|---|---|---|---|
Pooling |
true |
Återanvänder fysiska anslutningar för att matcha anslutningskonfigurationer. Inaktivera det endast för diagnos eller en uppmätt arbetsbelastning som inte kan poolas säkert. | Alla Microsoft. Data.SqlClient-versioner |
Min Pool Size |
0 |
Behåller minst så många fysiska anslutningar i en pool efter att poolen har skapats. Ett positivt värde kan hålla databassessioner öppna tills poolen eller processen avslutas. | Alla Microsoft. Data.SqlClient-versioner |
Max Pool Size |
100 |
Sätter en gräns för fysiska anslutningar i en pool. Förfrågningar väntar tills Connect Timeout poolen är full. |
Alla Microsoft. Data.SqlClient-versioner |
Load Balance Timeout |
0 Sekunder |
Kasserar en anslutning när den returneras till poolen om dess ålder överstiger detta värde.
Connection Lifetime är ett alias.
0 Inaktiverar åldersbaserad borttagning. |
Alla Microsoft. Data.SqlClient-versioner |
Pool Blocking Period |
Auto |
Styr om poolen tillfälligt kastar ett cachet inloggningsfel.
Autoinaktiverar blockeringsperioden för igenkända Azure SQL-endpoints och möjliggör den för andra endpoints. |
Alla Microsoft. Data.SqlClient-versioner |
Enlist |
true |
Automatiskt registrerar en öppen anslutning i den omgivande System.Transactions transaktionen. |
Alla Microsoft. Data.SqlClient-versioner |
Poolinställningar gäller för varje separat pool, inte för hela processen eller databasservern. Innan du höjer Max Pool Size, bekräfta att anslutningar och läsare tas bort snabbt och att databasen kan acceptera det resulterande totalvärdet över varje applikationsinstans.
För poolnycklar, tokenbeteende, blockeringsperioder, rensning och diagnostik, se SQL Server connection pooling.
Alternativ för anslutningsåterställning
| Keyword | Standardinställning | Behavior | Version |
|---|---|---|---|
Connect Retry Count |
1 |
Anger antalet återförsök för övergående fel som uppfyller villkoren vid den inledande anslutningen och för att återställa en bruten inaktiv anslutning. Den effektiva standardstandarden gäller 2 för erkända Azure SQL-endpoints och 5 för erkända Azure Synapse och on-demand-endpoints.
0 Inaktiverar dessa omförsök. |
Alla Microsoft. Data.SqlClient-versioner |
Connect Retry Interval |
10 sekund | Anger fördröjningen innan senare försök till initial anslutning eller försök att återställa från viloläge. Giltiga värden är 1 till 60 sekunder. | Alla Microsoft. Data.SqlClient-versioner |
Det första försöket under återhämtningen av anslutningen sker omedelbart.
Connect Retry Interval gäller före senare försök. För att kringgå inbyggd initial-öppen omprövning för en operation, använd en öppen överbelastning med OpenWithoutRetry.
Dessa nyckelord försöker inte om ett kommando som misslyckas medan det körs. Använd konfigurerbar återförsökslogik för en anpassad öppnings- eller kommandopolicy. Försök om kommandon endast när det är säkert att upprepa deras effekter.
Serveridentitet och certifikatalternativ
Dessa alternativ uppfyller specifika namngivningskrav för certifikat eller Kerberos. De ersätter inte vanlig autentisering och certifikatvalidering.
| Keyword | Standardinställning | Behavior | Version |
|---|---|---|---|
Host Name In Certificate |
Servervärdnamn | Tillhandahåller det förväntade Common Name (CN) eller Subject Alternative Name (SAN) när anslutningen använder ett DNS-alias som skiljer sig från certifikatet. | Microsoft. Data.SqlClient 5.0 och senare versioner |
Server Certificate |
Tomt | Tillhandahåller en PEM-, DER- eller CER-fil som måste matcha servercertifikatet exakt när Encrypt=Mandatory eller Encrypt=Strict. |
Microsoft. Data.SqlClient 5.1 och senare versioner |
Server SPN |
Härlett från servernamnet | Åsidosätter Service Principal Name (SPN) som används för integrerad autentisering till primärservern. Konfigurera den endast när den utplacerade Kerberos-namngivningen kräver ett explicit SPN. | Microsoft. Data.SqlClient 5.0 och senare versioner |
Failover Partner SPN |
Härstammar från failover-partnern | Åsidosätter SPN:n för en redundansväxlingspartner för databasspegling. Databasspegling är föråldrad. Använd tillgänglighetsgrupper för nya distributioner. | Microsoft. Data.SqlClient 5.0 och senare versioner |
Host Name In Certificate ändrar namnet som används för certifikatmatchning. Den litar inte på en opålitlig utgivare.
Server Certificate Pinnar en exakt certifikatfil och kräver en applikationsuppdatering när certifikatet roterar.
Felaktiga SPN-överskrivningar kan förhindra Kerberos-autentisering eller försvaga den avsedda identitetskontrollen. Fixa DNS- och SPN-registrering istället för att sätta överskrivningar när det är möjligt.
Håll anslutningssträngarna små. Lägg till ett alternativ endast när du kan ange vilket beteende det ändrar och hur arbetsbelastningen verifierar det beteendet.
Ändringar i granskningsalternativ
Innan du ändrar ett alternativ i produktion:
- Registrera aktuell reťazec pripojenia, drivrutinsversion, endpoint-typ och observerat problem.
- Byt ett beteende i taget.
- Testa anslutningsetablering, autentisering, certifikatvalidering, anslutningspoolning, failover, avbrytning och frågekörning.
- Mät hårda anslutningar, poolväntetider, anslutningslatens och felnummer.
- Bekräfta inställningen på varje distribuerad instans.
Anslutningssträngar är en del av poolnyckeln. En stegvis utrullning kan tillfälligt skapa både gamla och nya pooler, vilket ökar det totala antalet fysiska databasanslutningar.