<elemento > AppContextSwitchOverrides<AppContextSwitchOverrides> Element

Definisce una o più opzioni di compatibilità usate dalla classe AppContext per fornire un meccanismo di rifiuto esplicito per la nuova funzionalità.Defines one or more switches used by the AppContext class to provide an opt-out mechanism for new functionality.

<configuration> <configuration>
   <runtime >   <runtime>
     <AppContextSwitchOverrides >    <AppContextSwitchOverrides>

SintassiSyntax

<AppContextSwitchOverrides value="name1=value1[[;name2=value2];...]" />  

Attributi ed elementiAttributes and Elements

Le sezioni seguenti descrivono gli attributi, gli elementi figlio e gli elementi padre.The following sections describe attributes, child elements, and parent elements.

AttributiAttributes

AttributoAttribute DescrizioneDescription
value Attributo obbligatorio.Required attribute.

Definisce uno o più nomi di commutioni e i valori booleani associati.Defines one or more switch names and their associated Boolean values.

Attributo valuevalue Attribute

ValueValue DescrizioneDescription
"nome = valore""name=value" Nome di opzione predefinito insieme al relativo valore (true o false).A predefined switch name along with its value (true or false). Più coppie nome/valore del commutire sono separate da punti e virgola (";").Multiple switch name/value pairs are separated by semicolons (";"). Per un elenco di nomi di opzioni predefiniti supportati dal .NET Framework, vedere la sezione Osservazioni.For a list of predefined switch names supported by the .NET Framework, see the Remarks section.

Elementi figlioChild Elements

Nessuno.None.

Elementi padreParent Elements

ElementoElement DescrizioneDescription
configuration Elemento radice in ciascun file di configurazione usato in Common Language Runtime e nelle applicazioni .NET Framework.The root element in every configuration file used by the common language runtime and .NET Framework applications.
runtime Contiene informazioni sulle opzioni di inizializzazione in fase di esecuzione.Contains information about runtime initialization options.

OsservazioniRemarks

A partire da .NET Framework 4,6, l'elemento <AppContextSwitchOverrides> in un file di configurazione consente ai chiamanti di un'API di determinare se l'app può sfruttare le nuove funzionalità o mantenere la compatibilità con le versioni precedenti di una libreria.Starting with the .NET Framework 4.6, the <AppContextSwitchOverrides> element in a configuration file allows callers of an API to determine whether their app can take advantage of new functionality or preserve compatibility with previous versions of a library. Se, ad esempio, il comportamento di un'API è cambiato tra due versioni di una libreria, l'elemento <AppContextSwitchOverrides> consente ai chiamanti di tale API di rifiutare esplicitamente il nuovo comportamento nelle versioni della libreria che supportano la nuova funzionalità.For example, if the behavior of an API has changed between two versions of a library, the <AppContextSwitchOverrides> element allows callers of that API to opt out of the new behavior on versions of the library that support the new functionality. Per le app che chiamano le API nel .NET Framework, l'elemento <AppContextSwitchOverrides> può anche consentire ai chiamanti le cui app sono destinate a una versione precedente del .NET Framework di scegliere una nuova funzionalità se l'app è in esecuzione in una versione del .NET Framework che include tale funzionalità.For apps that call APIs in the .NET Framework, the <AppContextSwitchOverrides> element can also allow callers whose apps target an earlier version of the .NET Framework to opt into new functionality if their app is running on a version of the .NET Framework that includes that functionality.

L'attributo value dell'elemento <AppContextSwitchOverrides> è costituito da una singola stringa costituita da una o più coppie nome/valore delimitate da punti e virgola.The value attribute of the <AppContextSwitchOverrides> element consists of a single string that consists of one or more semicolon-delimited name/value pairs. Ogni nome identifica un'opzione di compatibilità e il valore corrispondente è un valore booleano (true o false) che indica se l'opzione è impostata.Each name identifies a compatibility switch, and its corresponding value is a Boolean (true or false) that indicates whether the switch is set. Per impostazione predefinita, l'opzione è falsee le librerie forniscono la nuova funzionalità.By default, the switch is false, and libraries provide the new functionality. Forniscono solo la funzionalità precedente se è impostata l'opzione (ovvero, il valore è true).They only provide the previous functionality if the switch is set (that is, its value is true). Questo consente alle librerie di fornire un nuovo comportamento per un'API esistente, consentendo ai chiamanti che dipendono dal comportamento precedente di rifiutare esplicitamente la nuova funzionalità.This allows libraries to provide new behavior for an existing API while allowing callers who depend on the previous behavior to opt out of the new functionality.

Il .NET Framework supporta le opzioni seguenti:The .NET Framework supports the following switches:

Nome dell'opzioneSwitch name DescrizioneDescription IntrodotteIntroduced
Switch.MS.Internal.
DoNotApplyLayoutRoundingToMarginsAndBorderThickness
Controlla se Windows Presentation Foundation usa un algoritmo legacy per il layout del controllo.Controls whether Windows Presentation Foundation uses legacy a algorithm for control layout. Per altre informazioni, vedere Mitigazione: Layout WPF.For more information, see Mitigation: WPF Layout. .NET Framework 4.6.NET Framework 4.6
Switch.MS.Internal.
UseSha1AsDefaultHashAlgorithmForDigitalSignatures
Controlla se l'algoritmo predefinito utilizzato per firmare parti di un pacchetto da PackageDigitalSignatureManager è SHA1 o SHA256.Controls whether the default algorithm used for signing parts of a package by PackageDigitalSignatureManager is SHA1 or SHA256.
A causa di problemi di conflitto con SHA1, Microsoft consiglia SHA256.Due to collision problems with SHA1, Microsoft recommends SHA256.
.NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.Activities.
UseMD5CryptoServiceProviderForWFDebugger
Quando è impostato su false, consente il debug di progetti di flusso di lavoro basati su XAML con Visual Studio quando FIPS è abilitato.When set to false, allows debugging of XAML-based workflow projects with Visual Studio when FIPS is enabled. Senza di esso, viene generata un'NullReferenceException nelle chiamate ai metodi nell'assembly System. Activities.Without it, a NullReferenceException is thrown in calls to methods in the System.Activities assembly. .NET Framework 4.7.NET Framework 4.7
Switch.System.Activities.
UseMD5ForWFDebugger
Controlla se il checksum per un'istanza del flusso di lavoro nel debugger usa MD5 o SHA1.Controls whether the checksum for a workflow instance in the debugger uses MD5 or SHA1. .NET Framework 4.7.NET Framework 4.7
Switch.System.Activities.
UseSHA1HashForDebuggerSymbols
Controlla se l'hashing del checksum del flusso di lavoro usa l'algoritmo SHA1 introdotto come valore predefinito in .NET Framework 4,7 (true) o se usa l'algoritmo predefinito SHA256 introdotto come valore predefinito in .NET Framework 4,8 (false).Controls whether workflow checksum hashing uses the SHA1 algorithm introduced as the default in .NET Framework 4.7 (true), or whether it uses the default SHA256 algorithm introduced as the default in .NET Framework 4.8 (false).
A causa di problemi di conflitto con SHA1, Microsoft consiglia SHA256.Due to collision problems with SHA1, Microsoft recommends SHA256.
.NET Framework 4.8.NET Framework 4.8
Switch.System.Diagnostics.
IgnorePortablePDBsInStackTraces
Controlla se le analisi dello stack ottengono quando si usano PDB portatili possono includere informazioni su file di origine e righe.Controls whether stack traces obtain when using portable PDBs can include source file and line information. false includere le informazioni sulla riga e sul file di origine; in caso contrario, true.false to include source file and line information; otherwise, true. .NET Framework 4.7.2.NET Framework 4.7.2
Switch.System.Drawing.
DontSupportPngFramesInIcons
Controlla se il metodo Icon.ToBitmap genera un'eccezione quando un oggetto Icon dispone di frame PNG.Controls whether the Icon.ToBitmap method throws an exception when an Icon object has PNG frames. Per altre informazioni, vedere Mitigazione: Frame PNG in oggetti icona.For more information, see Mitigation: PNG Frames in Icon Objects. .NET Framework 4.6.NET Framework 4.6
Switch.System.Drawing.Text.
DoNotRemoveGdiFontsResourcesFromFontCollection
Determina se gli oggetti System.Drawing.Text.PrivateFontCollection vengono eliminati correttamente quando vengono aggiunti alla raccolta dal metodo PrivateFontCollection.AddFontFile(String).Determines whether System.Drawing.Text.PrivateFontCollection objects are properly disposed when added to the collection by the PrivateFontCollection.AddFontFile(String) method. true per mantenere il comportamento legacy; false eliminare tutti gli oggetti carattere privati.true to maintain the legacy behavior; false to dispose of all private font objects. .NET Framework 4.7.2.NET Framework 4.7.2
Switch.System.Drawing.Printing.
OptimizePrintPreview
Controlla se le prestazioni dell'PrintPreviewDialog sono ottimizzate per le stampanti di rete.Controls whether the performance of the PrintPreviewDialog is optimized for network printers. Per ulteriori informazioni, vedere Cenni preliminari sul controllo PrintPreviewDialog.For more information, see PrintPreviewDialog control overview. .NET Framework 4.6.NET Framework 4.6
Switch.System.Globalization.EnforceJapaneseEraYearRanges Controlla se vengono applicati i controlli dell'intervallo di anno per le ere del calendario giapponese.Controls whether year range checks for Japanese calendar eras are enforced. true per applicare i controlli intervallo anno e false per disabilitarli (comportamento predefinito).true to enforce year range checks, and false to disable them (the default behavior). Per ulteriori informazioni, vedere utilizzo dei calendari.For more information, see Working with calendars. .NET Framework 4.6.NET Framework 4.6
Switch.System.Globalization.EnforceLegacyJapaneseDateParsing Controlla se solo "1" viene riconosciuto come primo anno di un'era del calendario giapponese nelle operazioni di analisi.Controls whether only "1" is recognized as the first year of a Japanese calendar era in parsing operations. true riconoscere solo "1"; false per riconoscere "1" o Gannen (comportamento predefinito).true to recognize only "1"; false to recognize either "1" or Gannen (the default behavior). Per ulteriori informazioni, vedere utilizzo dei calendari.For more information, see Working with calendars. .NET Framework 4.6.NET Framework 4.6
Switch.System.Globalization.FormatJapaneseFirstYearAsANumber Controlla se il primo anno di un'era del calendario giapponese è rappresentato come "1" o Gannen nelle operazioni di formattazione.Controls whether the first year of a Japanese calendar era is represented as "1" or Gannen in formatting operations. true formattare il primo anno dell'era come "1"; false per formattarlo come Gannen (comportamento predefinito).true to format the era's first year as "1"; false to format it as Gannen (the default behavior). Per ulteriori informazioni, vedere utilizzo dei calendari.For more information, see Working with calendars. .NET Framework 4.6.NET Framework 4.6
Switch.System.Globalization.NoAsyncCurrentCulture Controlla se le operazioni asincrone non vengono propagate dal contesto del thread chiamante.Controls whether asynchronous operations do not flow from the calling thread's context. Per ulteriori informazioni, vedere CurrentCulture e CurrentUICulture scorrono tra le attività.For more information, see CurrentCulture and CurrentUICulture flow across tasks. .NET Framework 4.6.NET Framework 4.6
Switch.System.IdentityModel.
DisableMultipleDNSEntriesInSANCertificate
Controlla se il metodo di X509CertificateClaimSet.FindClaims tenta di trovare la corrispondenza con il tipo di attestazione solo con l'ultima voce DNS.Controls whether the X509CertificateClaimSet.FindClaims method attempts to match the claim type only with the last DNS entry. Per altre informazioni, vedere Mitigazione: Metodo X509CertificateClaimSet.FindClaims.For more information, see Mitigation: X509CertificateClaimSet.FindClaims Method. .NET Framework 4.6.1.NET Framework 4.6.1
Switch.System.IdentityModel.
EnableCachedEmptyDefaultAuthorizationContext
Determina se consentire AuthorizationContext. Empty per restituire un oggetto modificabile.Controls whether to allow AuthorizationContext.Empty to return a mutable object. .NET Framework 4.6.NET Framework 4.6
Switch.System.IO.BlockLongPaths Controlla se i percorsi più lunghi di MAX_PATH (260 caratteri) generano una PathTooLongException.Controls whether paths longer than MAX_PATH (260 characters) throw a PathTooLongException. Per ulteriori informazioni, vedere supporto per percorsi lunghi.For more information, see Long Path Support. .NET Framework 4.6.2.NET Framework 4.6.2
Switch.System.IO.Compression.
DoNotUseNativeZipLibraryForDecompression
Controlla se le routine del sistema operativo native vengono usate per la decompressione da parte della classe DeflateStream.Controls whether native OS routines are used for decompression by the DeflateStream class. false usare API native; true per utilizzare l'implementazione di DeflateStream.false to use native APIs; true to use the DeflateStream implementation. .NET Framework 4.7.2.NET Framework 4.7.2
Switch.System.IO.Compression.ZipFile.
UseBackslash
Usa la barra rovesciata ("\") anziché la barra ("/") come separatore di percorso nella proprietà ZipArchiveEntry.FullName.Uses the backslash ("\") rather than the forward slash ("/") as the path separator in the ZipArchiveEntry.FullName property. Per ulteriori informazioni, vedere mitigazione: separatore di percorsi ZipArchiveEntry. FullName.For more information, see Mitigation: ZipArchiveEntry.FullName Path Separator. .NET Framework 4.6.1.NET Framework 4.6.1
Switch.System.IO.Ports.
DoNotCatchSerialStreamThreadExceptions
Controlla se le eccezioni del sistema operativo generate sui thread in background creati con SerialPort flussi terminano il processo.Controls whether operating system exceptions that are thrown on background threads created with SerialPort streams terminate the process. .NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.IO.
UseLegacyPathHandling
Controlla se viene utilizzata la normalizzazione del percorso legacy e se i percorsi URI sono supportati dai metodi Path.GetDirectoryName e Path.GetPathRoot.Controls whether legacy path normalization is used and URI paths are supported by the Path.GetDirectoryName and Path.GetPathRoot methods. Per altre informazioni, vedere mitigazione: normalizzazione dei percorsi e mitigazione: controlli dei due punti del percorso.For more information, see Mitigation: Path Normalization and Mitigation: Path Colon Checks. .NET Framework 4.6.2.NET Framework 4.6.2
Switch.System.
MemberDescriptorEqualsReturnsFalseIfEquivalent
Controlla se un test di uguaglianza confronta la proprietà MemberDescriptor.Category di un oggetto con la proprietà MemberDescriptor.Description del secondo oggetto.Controls whether a test for equality compares the MemberDescriptor.Category property of one object with the MemberDescriptor.Description property of the second object. Per ulteriori informazioni, vedere implementazione non corretta di MemberDescriptor. Equals.For more information, see Incorrect implementation of MemberDescriptor.Equals. .NET Framework 4.6.2.NET Framework 4.6.2
Switch.System.Net.
DontCheckCertificateEKUs
Disabilita la convalida dell'identificatore di oggetto (OID) di utilizzo chiavi avanzato (EKU) del certificato.Disables certificate enhanced key usage (EKU) object identifier (OID) validation. Un'estensione di utilizzo chiavi avanzato (EKU) è una raccolta di identificatori di oggetto (OID) che indica le applicazioni che usano la chiave.An enhanced key usage (EKU) extension is a collection of object identifiers (OIDs) that indicate the applications that use the key. .NET Framework 4.6.NET Framework 4.6
Switch.System.Net.
DontEnableSchSendAuxRecord
Disabilita l'exploit del browser TLS 1.0 contro la mitigazione SSL/TLS (BEAST) disabilitando l'uso di SCH_SEND_AUX_RECORD.Disables TLS1.0 Browser Exploit Against SSL/TLS (BEAST) mitigation by disabling the use of SCH_SEND_AUX_RECORD. .NET Framework 4.6.NET Framework 4.6
Switch.System.Net.
DontEnableSchUseStrongCrypto
Controlla se le classi System.Net.ServicePointManager e System.Net.Security.SslStream possono usare il protocollo SSL 3,0.Controls whether the System.Net.ServicePointManager and System.Net.Security.SslStream classes can use the SSL 3.0 protocol. Per altre informazioni, vedere Mitigazione: Protocolli TLS.For more information, see Mitigation: TLS Protocols. .NET Framework 4.6.NET Framework 4.6
Switch.System.Net.
DontEnableSystemDefaultTlsVersions
Disabilita le versioni di TLS di SystemDefault ripristinando il valore predefinito Tls12, Tls11 e TLS.Disables SystemDefault TLS versions reverting back to a default of Tls12, Tls11, Tls. .NET Framework 4.7.NET Framework 4.7
Switch.System.Net.
DontEnableTlsAlerts
Disabilita gli avvisi lato server di SslStream TLS.Disables SslStream TLS server-side Alerts. .NET Framework 4.7.NET Framework 4.7
Switch.System.Runtime.InteropServices.
DoNotMarshalOutByrefSafeArrayOnInvoke
Controlla se i parametri ByRef SafeArray negli eventi di interoperabilità COM eseguono il marshalling al codice nativo (false) o se il marshalling al codice nativo è disabilitato (true).Controls whether ByRef SafeArray parameters on COM interop events marshal back to native code (false) or whether marshaling back to native code is disabled (true). .NET Framework 4.8.NET Framework 4.8
Switch.System.Runtime.Serialization.
DoNotUseECMAScriptV6EscapeControlCharacter
Controlla se DataContractJsonSerializer serializza alcuni caratteri di controllo in base agli standard ECMAScript V6 e V8.Controls whether the DataContractJsonSerializer serializes some control characters based on the ECMAScript V6 and V8 standards. Per altre informazioni, vedere Mitigazione: Serializzazione dei caratteri di controllo con DataContractJsonSerializerFor more information, see Mitigation: Serialization of Control Characters with the DataContractJsonSerializer .NET Framework 4.7.NET Framework 4.7
Switch.System.Runtime.Serialization.
DoNotUseTimeZoneInfo
Controlla se il DataContractJsonSerializer supporta più regolazioni o solo una singola regolazione per un fuso orario.Controls whether the DataContractJsonSerializer supports multiple adjustments or only a single adjustment for a time zone. Se true, usa il tipo di TimeZoneInfo per serializzare e deserializzare i dati di data e ora; in caso contrario, viene utilizzato il tipo TimeZone, che non supporta più regole di regolazione.If true, it uses the TimeZoneInfo type to serialize and deserialize date and time data; otherwise, it uses the TimeZone type, which does not support multiple adjustment rules. .NET Framework 4.6.2.NET Framework 4.6.2
Switch.System.Runtime.Serialization.UseNewMaxArraySize Controlla se System.Runtime.Serialization.ObjectManager utilizza una dimensione della matrice maggiore durante la serializzazione e la deserializzazione dell'oggetto.Controls whether System.Runtime.Serialization.ObjectManager uses a larger array size during object serialization and deserialization. Impostare questa opzione su true per migliorare le prestazioni della serializzazione e della deserializzazione di oggetti grafici di grandi dimensioni in base ai tipi, ad esempio BinaryFormatter.Set this switch to true to improve the performance of serialization and deserialization of large object graphs by types such as BinaryFormatter. .NET Framework 4.7.2.NET Framework 4.7.2
Switch.System.Security.ClaimsIdentity.
SetActorAsReferenceWhenCopyingClaimsIdentity
Controlla se il costruttore ClaimsIdentity.ClaimsIdentity(IIdentity) imposta la proprietà di ClaimsIdentity.Actor del nuovo oggetto con un riferimento a un oggetto esistente.Controls whether the ClaimsIdentity.ClaimsIdentity(IIdentity) constructor sets the new object's ClaimsIdentity.Actor property with an existing object reference. Per altre informazioni, vedere Mitigazione: Costruttore ClaimsIdentity.For more information, see Mitigation: ClaimsIdentity Constructor. .NET Framework 4.6.2.NET Framework 4.6.2
Switch.System.Security.Cryptography.
AesCryptoServiceProvider.DontCorrectlyResetDecryptor
Controlla se il tentativo di riutilizzare un decrittografia AesCryptoServiceProvider genera un'CryptographicException.Controls whether the attempt to reuse an AesCryptoServiceProvider decryptor throws a CryptographicException. Per ulteriori informazioni, vedere AesCryptoServiceProvider Decryptor fornisce una trasformazione riutilizzabile.For more information, see AesCryptoServiceProvider decryptor provides a reusable transform. .NET Framework 4.6.2.NET Framework 4.6.2
Switch.System.Security.Cryptography.
DoNotAddrOfCspParentWindowHandle
Controlla se il valore della proprietà CspParameters. ParentWindowHandle è un elemento IntPtr che rappresenta la posizione di memoria di un handle di finestra o se è un handle di finestra (HWND).Controls whether the value of the CspParameters.ParentWindowHandle property is an IntPtr that represents the memory location of a window handle, or whether it is a window handle (an HWND). Per altre informazioni, vedere Mitigazione: CspParameters.ParentWindowHandle prevede un HWND.For more information, see Mitigation: CspParameters.ParentWindowHandle Expects an HWND. .NET Framework 4.7.NET Framework 4.7
Switch.System.Security.Cryptography.
UseLegacyFipsThrow
Controlla se l'uso di classi di crittografia gestite in modalità FIPS genera un CryptographicException (true) o si basa sull'implementazione delle librerie di sistema (false).Controls whether the use of managed cryptography classes in FIPS mode throws a CryptographicException (true) or relies on the implementation of system libraries (false). .NET Framework 4.8.NET Framework 4.8
Switch.System.Security.Cryptography.Pkcs.
UseInsecureHashAlgorithms
Determina se l'impostazione predefinita per alcune operazioni SignedCMS è SHA1 o SHA256.Determines whether the default for some SignedCMS operations is SHA1 or SHA256.
A causa di problemi di conflitto con SHA1, Microsoft consiglia SHA256.Due to collision problems with SHA1, Microsoft recommends SHA256.
.NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.Security.Cryptography.X509Certificates.
ECDsaCertificateExtensions.UseLegacyPublicKeyReader
Controlla se il metodo ECDsaCertificateExtensions.GetECDsaPublicKey gestisce correttamente tutte le curve denominate supportate dal sistema operativo (false) o Ripristina il comportamento legacy.Controls whether the ECDsaCertificateExtensions.GetECDsaPublicKey method correctly handles all named curves supported by the operating system (false) or reverts to legacy behavior. .NET Framework 4.8.NET Framework 4.8
Switch.System.Security.Cryptography.Xml.
UseInsecureHashAlgorithms
Determina se l'impostazione predefinita per alcune operazioni SignedXML è SHA1 o SHA256.Determines whether the default for some SignedXML operations is SHA1 or SHA256.
A causa di problemi di conflitto con SHA1, Microsoft consiglia SHA256.Due to collision problems with SHA1, Microsoft recommends SHA256.
.NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.ServiceModel.
AllowUnsignedToHeader
Determina se la modalità di sicurezza TransportWithMessageCredential consente messaggi con un'intestazione "to" senza segno.Determines whether the TransportWithMessageCredential security mode allows messages with an unsigned "to" header. Si tratta di un'opzione di consenso esplicito.This is an opt-in switch. Per ulteriori informazioni, vedere modifiche di runtime nel .NET Framework 4.6.1.For more information, see Runtime Changes in the .NET Framework 4.6.1. .NET Framework 4.6.1.NET Framework 4.6.1
Switch.System.ServiceModel.
DisableAddressHeaderCollectionValidation>
Controlla se il costruttore AddressHeaderCollection(IEnumerable<AddressHeader>) genera un'ArgumentException se uno degli elementi è null.Controls whether the AddressHeaderCollection(IEnumerable<AddressHeader>) constructor throws an ArgumentException if one of the elements is null. .NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.ServiceModel.
DisableCngCertificates
Determina se il tentativo di usare i certificati X509 con un provider di archiviazione chiavi CSG genera un'eccezione.Determines whether the attempt to use X509 certificates with a CSG key storage provider throws an exception. Per ulteriori informazioni, vedere la pagina relativa alla sicurezza del trasporto WCF supporta i certificati archiviati tramite CNG.For more information, see WCF transport security supports certificates stored using CNG. .NET Framework 4.6.1.NET Framework 4.6.1
Switch.System.ServiceModel.
DisableExplicitConnectionCloseHeader
Quando si usa il trasporto HTTP con un servizio indipendente, impostando questo valore su true fa in modo che WCF ignori un'applicazione che aggiunge l'intestazione Connection: close alle intestazioni della risposta per una richiesta.When using the HTTP transport with a self-hosted service, setting this value to true causes WCF to ignore an application adding the Connection: close header to the response headers for a request. Impostando questo valore su false è possibile aggiungere l'intestazione Connection: close alle intestazioni della risposta, con conseguente chiusura del socket della richiesta dopo l'invio di una risposta.Setting this value to false enables adding the Connection: close header to the response headers, which results in closing the request socket after a response has been sent. .NET Framework 4.6.NET Framework 4.6
Switch.System.ServiceModel.
DisableOperationContextAsyncFlow
Gestisce i deadlock derivanti dalla restrizione delle istanze di un servizio rientrante a un singolo thread di esecuzione alla volta.Handles deadlocks that result from restricting instances of a reentrant service to a single thread of execution at a time. .NET Framework 4.6.2.NET Framework 4.6.2
Switch.System.ServiceModel.
DisableUsingServicePointManagerSecurityProtocols
Insieme a Switch.System.Net.DontEnableSchUseStrongCrypto, determina se la sicurezza dei messaggi WCF utilizza TLS 1,1 e TLS 1,2.Along with Switch.System.Net.DontEnableSchUseStrongCrypto, determines whether WCF message security uses TLS 1.1 and TLS 1.2. .NET Framework 4.7.NET Framework 4.7
Switch.System.ServiceModel.
DontEnableSystemDefaultTlsVersions
Il valore false imposta la configurazione predefinita per consentire al sistema operativo di scegliere il protocollo.A value of false sets the default configuration to allow the operating system to choose the protocol. Il valore true imposta il valore predefinito sul protocollo più alto disponibile.A value of true sets the default to the highest protocol available. (Disponibile anche nel ramo di manutenzione delle versioni precedenti del Framework)(Also available on servicing branch of previous framework versions) .NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.ServiceModel.
UseSha1InMsmqEncryptionAlgorithm
Determina se l'algoritmo di firma del messaggio predefinito per i messaggi MSMQ in WCF è SHA1 o SHA256.Determines whether the default message signing algorithm for MSMQ messages in WCF is SHA1 or SHA256.
A causa di problemi di conflitto con SHA1, Microsoft consiglia SHA256.Due to collision problems with SHA1, Microsoft recommends SHA256.
.NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.ServiceModel.
UseSha1InPipeConnectionGetHashAlgorithm
Controlla se WCF utilizza un hash SHA1 o SHA256 per generare nomi casuali per le named pipe.Controls whether WCF uses a SHA1 or a SHA256 hash to generate random names for named pipes.
A causa di problemi di conflitto con SHA1, Microsoft consiglia SHA256.Due to collision problems with SHA1, Microsoft recommends SHA256.
.NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.ServiceModel.Internals
IncludeNullExceptionMessageInETWTrace
Determina se generare un'eccezione NullReferenceException quando il messaggio di eccezione è null.Controls whether to throw a NullReferenceException when the exception message is null. .NET Framework 4.7.NET Framework 4.7
Switch.System.ServiceProcess.
DontThrowExceptionsOnStart
Controlla se le eccezioni generate all'avvio del servizio vengono propagate al chiamante del metodo ServiceBase.Run.Controls whether exceptions thrown on service startup are propagated to the caller of the ServiceBase.Run method. .NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.Threading.UseNetCoreTimer Controlla se Timer istanze di sfruttano i vantaggi offerti dai miglioramenti delle prestazioni per gli ambienti a scalabilità elevata.Controls whether Timer instances take advantage of performance improvements for high-scale environments. Se true, i miglioramenti delle prestazioni sono abilitati. Se false (valore predefinito), sono disabilitati.If true, the performance improvements are enabled; if false (the default value), they are disabled. .NET Framework 4.8.NET Framework 4.8
Switch.System.Uri.
DontEnableStrictRFC3986ReservedCharacterSets
Determina se alcuni caratteri codificati in percentuale a volte decodificati sono ora codificati in modo coerente.Determines whether certain percent-encoded characters that were sometimes decoded are now consistently left encoded. Se true, vengono decodificati. in caso contrario, false.If true, they are decoded; otherwise, false. .NET Framework 4.7.2.NET Framework 4.7.2
Switch.System.Uri.
DontKeepUnicodeBidiFormattingCharacters
Determina la gestione dei caratteri bidirezionali Unicode negli URI.Determines the handling of Unicode bidirectional characters in URIs. true per rimuoverli dagli URI; false per mantenere e codificare in percentuale i componenti.true to strip them from URIs; false to preserve and percent-encode them. .NET Framework 4.7.2.NET Framework 4.7.2
Switch.System.Windows.Controls.Grid.
StarDefinitionsCanExceedAvailableSpace
Determina se Windows Presentation Foundation applica un algoritmo precedente (true) o un nuovo algoritmo (false) nell'allocazione dello spazio alle colonne *.Determines whether Windows Presentation Foundation applies an old algorithm (true) or a new algorithm (false) in allocating space to *-columns. Per altre informazioni, vedere Mitigazione: Allocazione dello spazio di controllo della griglia alle colonne a stella.For more information, see Mitigation: Grid Control's Space Allocation to Star-columns. .NET Framework 4.7.NET Framework 4.7
Switch.System.Windows.Controls.TabControl.
SelectionPropertiesCanLagBehindSelectionChangedEvent
Controlla se un selettore o un controllo struttura a schede Aggiorna sempre il valore della proprietà del valore selezionato prima di generare l'evento di modifica della selezione.Controls whether a selector or a tab control always updates the value of its selected value property before raising the selection changed event. .NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.Windows.Controls.Text.
UseAdornerForTextboxSelectionRendering
Determina se il rendering della selezione basata su Adorner è disponibile per i controlli TextBox e PasswordBox per impedire il testo nascosto (false) o se viene eseguito il rendering del testo solo nel livello dello strumento decorativo (true).Determines whether non-Adorner based selection rendering is available for the TextBox and PasswordBox controls to prevent occluded text (false), or whether text is rendered only in the Adorner layer (true). .NET Framework 4.7.2.NET Framework 4.7.2
Switch.System.Windows.Data.Binding.
IListIndexerHidesCustomIndexer
Controlla se gli indicizzatori IList personalizzati vengono usati in modo errato (true) o correttamente (false) dalla classe System.Windows.Data.Binding.Controls whether custom IList indexers are used incorrectly (true) or correctly (false) by the System.Windows.Data.Binding class. .NET Framework 4.8.NET Framework 4.8
Switch.System.Windows.DoNotScaleForDpiChanges Determina se le modifiche DPI si verificano in un sistema (valore false) o in base al monitoraggio (valore di true).Determines whether DPI changes occur on a per-system (a value of false) or per-monitor basis (a value of true). .NET Framework 4.6.2.NET Framework 4.6.2
Switch.System.Windows.
DoNotUsePresentationDpiCapabilityTier2OrGreater
Controlla se i miglioramenti apportati al ridimensionamento dei controlli in un System.Windows.Interop.HwndHost quando WPF viene eseguito in modalità di rilevamento per monitoraggio sono disabilitati (true) o abilitati (false).Controls whether improvements in sizing of controls in a System.Windows.Interop.HwndHost when WPF is run in per-monitor aware mode are disabled (true) or enabled (false). .NET Framework 4.8.NET Framework 4.8
Switch.System.Windows.Forms.
DomainUpDown.UseLegacyScrolling
Determina se lo sviluppatore deve gestire in modo specifico l'azione DomainUpDown.UpButton() quando è presente il testo del controllo.Determines whether the developer needs to specially handle the DomainUpDown.UpButton() action when control text is present. true per gestire l'azione UpButton(); false per sincronizzare correttamente le azioni DomainUpDown.UpButton() e DomainUpDown.DownButton().true to handle the UpButton() action; false for the DomainUpDown.UpButton() and DomainUpDown.DownButton() actions to be properly in sync. .NET Framework 4.7.2.NET Framework 4.7.2
Switch.System.Windows.Forms.
DontSupportReentrantFilterMessage
Esclude il codice che consente a un'implementazione di IMessageFilter.PreFilterMessage personalizzata di filtrare in modo sicuro i messaggi senza generare un'eccezione quando viene chiamato il metodo Application.FilterMessage.Opts out of the code that allows a custom IMessageFilter.PreFilterMessage implementation to safely filter messages without throwing an exception when the Application.FilterMessage method is called. Per altre informazioni, vedere Mitigazione: Implementazioni IMessageFilter.PreFilterMessage personalizzate.For more information, see Mitigation: Custom IMessageFilter.PreFilterMessage Implementations. .NET Framework 4.6.1.NET Framework 4.6.1
Switch.System.Windows.Forms.
UseLegacyContextMenuStripSourceControlValue
Determina se la proprietà ContextMenuStrip.SourceControl restituisce il controllo del codice sorgente quando l'utente apre il menu da un controllo ToolStripMenuItem annidato.Determines whether the ContextMenuStrip.SourceControl property returns the source control when the user opens the menu from a nested ToolStripMenuItem control. true per restituire null, il comportamento legacy; false per restituire il controllo del codice sorgente.true to return null, the legacy behavior; false to return the source control. .NET Framework 4.7.2.NET Framework 4.7.2
Switch.System.Windows.Forms.UseLegacyToolTipDisplay Controlla se il supporto della chiamata della descrizione comando è disabilitato (true) o abilitato (false).Controls whether tooltip invocation support is disabled (true) or enabled (false). L'abilitazione del supporto della chiamata della descrizione comando richiede inoltre funzionalità di accessibilità legacy definite da Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2e Switch.UseLegacyAccessibilityFeatures.3 tutte disabilitate (impostate su false).Enabling tooltip invocation support also requires legacy accessibility features defined by Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2, and Switch.UseLegacyAccessibilityFeatures.3 all be disabled (set to false). .NET Framework 4.8.NET Framework 4.8
Switch.System.Windows.Input.Stylus.
EnablePointerSupport
Determina se uno stack di tocco/stilo basato su WM_POINTERfacoltativo è abilitato nelle applicazioni WPF.Determines whether an optional WM_POINTER-based touch/stylus stack is enabled in WPF applications. Per altre informazioni, vedere mitigazione: supporto per tocco e stilo basato su puntatoreFor more information, see Mitigation: Pointer-based Touch and Stylus Support .NET Framework 4.7.NET Framework 4.7
Switch.System.Windows.Markup.
DoNotUseSha256ForMarkupCompilerChecksumAlgorithm
Determina se l'algoritmo hash predefinito utilizzato per i checksum è SHA256 (false) o SHA1 (true).Determines whether the default hash algorithm used for checksums is SHA256 (false) or SHA1 (true).
A causa di problemi di conflitto con SHA1, Microsoft consiglia SHA256.Due to collision problems with SHA1, Microsoft recommends SHA256.
.NET Framework 4.7.2.NET Framework 4.7.2
Switch.System.Windows.Media.ImageSourceConverter.
OverrideExceptionWithNullReferenceException
Controlla se viene generata un'eccezione NullReferenceException legacy anziché l'eccezione che indica più specificamente la provocazione dell'eccezione, ad esempio DirectoryNotFoundException o FileNotFoundException.Controls whether a legacy NullReferenceException is thrown instead of the exception that more specifically indicates the cause of the exception (such as a DirectoryNotFoundException or a FileNotFoundException. È destinata all'utilizzo da parte del codice che dipende dalla gestione dell' eccezione NullReferenceException.It is intended for use by code that depends on handling the NullReferenceException. .NET Framework 4.7.NET Framework 4.7
Switch.System.Workflow.ComponentModel.
UseLegacyHashForXomlFileChecksum
Controlla se l'hashing di checksum dei file XOML nelle compilazioni di progetti flusso di lavoro usa l'algoritmo MD5 (true) o se usa l'algoritmo SHA256 introdotto come valore predefinito in .NET Framework 4,8.Controls whether checksum hashing of XOML files in workflow project builds use the MD5 algorithm (true), or whether they use the SHA256 algorithm introduced as the default in .NET Framework 4.8.
A causa di problemi di collisione con MD5, Microsoft consiglia SHA256.Due to collision problems with MD5, Microsoft recommends SHA256.
.NET Framework 4.8.NET Framework 4.8
Switch.System.Workflow.Runtime.
UseLegacyHashForSqlTrackingCacheKey
Controlla se l'hashing di checksum da SqlTrackingService usa l'algoritmo MD5 (true) per le stringhe memorizzate nella cache o se usa l'algoritmo SHA256 introdotto come valore predefinito in .NET Framework 4,8.Controls whether checksum hashing by the SqlTrackingService uses the MD5 algorithm (true) for cached strings, or whether it uses the SHA256 algorithm introduced as the default in .NET Framework 4.8.
A causa di problemi di collisione con MD5, Microsoft consiglia SHA256.Due to collision problems with MD5, Microsoft recommends SHA256.
.NET Framework 4.8.NET Framework 4.8
Switch.System.Workflow.Runtime.
UseLegacyHashForWorkflowDefinitionDispenserCacheKey
Controlla se l'hashing di checksum da parte del runtime del flusso di lavoro usa l'algoritmo MD5 (true) per le definizioni del flusso di lavoro memorizzato nella cache o se usa l'algoritmo SHA256 introdotto come valore predefinito in .NET Framework 4,8.Controls whether checksum hashing by the Workflow Runtime uses the MD5 algorithm (true) for cached workflow definitions, or whether it uses the SHA256 algorithm introduced as the default in .NET Framework 4.8.
A causa di problemi di collisione con MD5, Microsoft consiglia SHA256.Due to collision problems with MD5, Microsoft recommends SHA256.
.NET Framework 4.8.NET Framework 4.8
Switch.UseLegacyAccessibilityFeatures Controlla se le funzionalità di accessibilità disponibili a partire da .NET Framework 4.7.1 sono abilitate o disabilitate.Controls whether accessibility features available starting with .NET Framework 4.7.1 are enabled or disabled. .NET Framework 4.7.1.NET Framework 4.7.1
Switch.UseLegacyAccessibilityFeatures.2 Controlla se le funzionalità di accessibilità disponibili in .NET Framework 4.7.2 sono abilitate (false) o disabilitate (true).Controls whether accessibility features available in .NET Framework 4.7.2 are enabled (false) or disabled (true). Se true, è necessario true anche Switch.UseLegacyAccessibilityFeatures per abilitare le funzionalità di accessibilità .NET Framework 4.7.1.If true, Switch.UseLegacyAccessibilityFeatures must also be true to enable .NET Framework 4.7.1 accessibility features. .NET Framework 4.7.2.NET Framework 4.7.2
Switch.UseLegacyAccessibilityFeatures.3 Controlla se le funzionalità di accessibilità introdotte in .NET Framework 4,8 sono abilitate (false) o disabilitate (true).Controls whether accessibility features introduced in .NET Framework 4.8 are enabled (false) or disabled (true). Se true, è necessario trueanche Switch.UseLegacyAccessibilityFeatures e Switch.UseLegacyAccessibilityFeatures.2.If true, Switch.UseLegacyAccessibilityFeatures and Switch.UseLegacyAccessibilityFeatures.2 must also be true. .NET Framework 4.8.NET Framework 4.8
Switch.UseLegacyToolTipDisplay Controlla se le descrizioni comandi vengono visualizzate quando un utente posiziona il cursore del mouse su un controllo WPF (true) o se viene visualizzato sullo stato attivo della tastiera e tramite il tasto di scelta rapida (false, il comportamento predefinito).Controls whether tooltips are displayed when a user hovers the mouse cursor over a WPF control (true), or whether they are displayed both on keyboard focus and via keyboard shortcut key (false, the default behavior). Per le applicazioni in esecuzione in .NET Framework 4,8 ma destinate a versioni precedenti del .NET Framework, l'abilitazione del supporto per lo stato attivo e il tasto di scelta rapida richiede che Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2e Switch.UseLegacyAccessibilityFeatures.3 siano impostate su false.For applications running on .NET Framework 4.8 but targeting previous versions of the .NET Framework, enabling both keyboard focus and shortcut key support requires that Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2, and Switch.UseLegacyAccessibilityFeatures.3 all be set to false. .NET Framework 4.8.NET Framework 4.8
System.Xml.

IgnoreEmptyKeySequences
Controlla se le sequenze di chiavi vuote nelle chiavi composte vengono ignorate dalla convalida dello schema XSD.Controls whether empty key sequences in compound keys are ignored by XSD schema validation. Per ulteriori informazioni, vedere mitigazione: convalida di XML Schema.For more information, see Mitigation: XML Schema Validation. .NET Framework 4.6.NET Framework 4.6

Nota

Invece di aggiungere un elemento AppContextSwitchOverrides a un file di configurazione dell'applicazione, è anche possibile impostare le opzioni a livello di codice chiamando il C#metodo di static (in) o Shared (in Visual Basic) AppContext.SetSwitch.Instead of adding an AppContextSwitchOverrides element to an application configuration file, you can also set the switches programmatically by calling the static (in C#) or Shared (in Visual Basic) AppContext.SetSwitch method.

Gli sviluppatori di librerie possono anche definire opzioni personalizzate per consentire ai chiamanti di rifiutare esplicitamente le funzionalità modificate introdotte nelle versioni successive delle librerie.Library developers can also define custom switches to allow callers to opt out of changed functionality introduced in later versions of their libraries. Per altre informazioni, vedere la classe AppContext.For more information, see the AppContext class.

Opzioni nelle applicazioni ASP.NETSwitches in ASP.NET applications

È possibile configurare un'applicazione ASP.NET per l'utilizzo delle impostazioni di compatibilità aggiungendo un <aggiungere > elemento alla sezione <appSettings > del file Web. config.You can configure an ASP.NET application to use compatibility settings by adding an <Add> element to the <appSettings> section of the web.config file.

Nell'esempio seguente viene usato l'elemento <add> per aggiungere due impostazioni alla sezione <appSettings> di un file Web. config:The following example uses the <add> element to add two settings to the <appSettings> section of a web.config file:

<appSettings>
  <add key="AppContext.SetSwitch:Switch.System.Globalization.NoAsyncCurrentCulture" value="true" />
  <add key="AppContext.SetSwitch:Switch.System.Uri.DontEnableStrictRFC3986ReservedCharacterSets" value="true" />
</appSettings>

EsempioExample

Nell'esempio seguente viene usato l'elemento AppContextSwitchOverrides per definire una singola opzione di compatibilità dell'applicazione, Switch.System.Globalization.NoAsyncCurrentCulture, che impedisce la propagazione delle impostazioni cultura tra i thread nelle chiamate asincrone al metodo.The following example uses the AppContextSwitchOverrides element to define a single application compatibility switch, Switch.System.Globalization.NoAsyncCurrentCulture, that prevents culture from flowing across threads in asynchronous method calls.

<configuration>  
   <runtime>  
      <AppContextSwitchOverrides value="Switch.System.Globalization.NoAsyncCurrentCulture=true" />  
   </runtime>  
</configuration>  

Nell'esempio seguente viene usato l'elemento AppContextSwitchOverrides per definire due opzioni di compatibilità delle applicazioni, Switch.System.Globalization.NoAsyncCurrentCulture e Switch.System.IO.BlockLongPaths.The following example uses the AppContextSwitchOverrides element to define two application compatibility switches, Switch.System.Globalization.NoAsyncCurrentCulture and Switch.System.IO.BlockLongPaths. Si noti che un punto e virgola separa le due coppie nome/valore.Note that a semicolon separates the two name/value pairs.

<configuration>  
    <runtime>  
       <AppContextSwitchOverrides   
          value="Switch.System.Globalization.NoAsyncCurrentCulture=true;Switch.System.IO.BlockLongPaths=true" />  
    </runtime>  
</configuration>  

Vedere ancheSee also