<AppContextSwitchOverrides > 요소<AppContextSwitchOverrides> element

AppContext 클래스에 사용되는 스위치를 하나 이상 정의하여 새 기능의 옵트아웃 메커니즘을 제공합니다.Defines one or more switches used by the AppContext class to provide an opt-out mechanism for new functionality.

<configuration> <configuration>
<런타임 >     <runtime>
     <AppContextSwitchOverrides>    <AppContextSwitchOverrides>

구문Syntax

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

특성 및 요소Attributes and Elements

다음 단원에서는 특성, 자식 요소 및 부모 요소에 대해 설명합니다.The following sections describe attributes, child elements, and parent elements.

특성Attributes

특성Attribute 설명Description
value 필수 특성입니다.Required attribute.

하나 이상의 스위치 이름 및 연결 된 부울 값을 정의 합니다.Defines one or more switch names and their associated Boolean values.

value 특성value Attribute

Value 설명Description
"name=value""name=value" 값 (true 또는 false)과 함께 미리 정의 된 스위치 이름입니다.A predefined switch name along with its value (true or false). 여러 스위치 이름/값 쌍은 세미콜론 (";")으로 구분 됩니다.Multiple switch name/value pairs are separated by semicolons (";"). .NET Framework에서 지 원하는 미리 정의 된 스위치 이름 목록은 설명 섹션을 참조 하세요.For a list of predefined switch names supported by the .NET Framework, see the Remarks section.

자식 요소Child Elements

없음.None.

부모 요소Parent Elements

요소Element 설명Description
configuration 공용 언어 런타임 및 .NET Framework 애플리케이션에서 사용하는 모든 구성 파일의 루트 요소입니다.The root element in every configuration file used by the common language runtime and .NET Framework applications.
runtime 런타임 초기화 옵션에 대한 정보를 포함합니다.Contains information about runtime initialization options.

주의Remarks

.NET Framework 4.6부터 구성 파일의 <AppContextSwitchOverrides> 요소를 사용 하면 API 호출자가 앱이 새로운 기능을 활용 하거나 이전 라이브러리 버전과의 호환성을 유지할 수 있는지 여부를 확인할 수 있습니다.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. 예를 들어 두 라이브러리 버전 간에 API 동작이 변경 된 경우 <AppContextSwitchOverrides> 요소를 사용 하면 해당 API의 호출자가 새 기능을 지 원하는 라이브러리 버전에서 새로운 동작을 옵트아웃 (opt out) 할 수 있습니다.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. .NET Framework Api를 호출 하는 앱의 경우, <AppContextSwitchOverrides> 요소는 해당 앱이 해당 기능을 포함 하는 .NET Framework 버전에서 실행 되는 경우 새 기능을 사용 하 여 앱이 이전 버전의 .NET Framework를 대상으로 하는 호출자를 허용할 수도 있습니다.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.

<AppContextSwitchOverrides> 요소의 value 특성은 하나 이상의 세미콜론으로 구분 된 이름/값 쌍으로 구성 된 단일 문자열로 구성 됩니다.The value attribute of the <AppContextSwitchOverrides> element consists of a single string that consists of one or more semicolon-delimited name/value pairs. 각 이름은 호환성 스위치를 식별 하 고 해당 값은 스위치가 설정 되었는지 여부를 나타내는 부울 (true 또는 false)입니다.Each name identifies a compatibility switch, and its corresponding value is a Boolean (true or false) that indicates whether the switch is set. 기본적으로 스위치는 false되며 라이브러리는 새로운 기능을 제공 합니다.By default, the switch is false, and libraries provide the new functionality. 스위치가 설정 된 경우 (즉, 해당 값이 true) 이전 기능만 제공 합니다.They only provide the previous functionality if the switch is set (that is, its value is true). 이렇게 하면 이전 동작에 의존 하는 호출자가 새 기능을 옵트아웃 (opt out) 할 수 있도록 하는 동시에 라이브러리에서 기존 API에 대 한 새로운 동작을 제공할 수 있습니다.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.

.NET Framework는 다음 스위치를 지원 합니다.The .NET Framework supports the following switches:

스위치 이름Switch name 설명Description 도입Introduced
Switch.MS.Internal.
DoNotApplyLayoutRoundingToMarginsAndBorderThickness
Windows Presentation Foundation에서 컨트롤 레이아웃에 대해 레거시 알고리즘을 사용할지 여부를 제어 합니다.Controls whether Windows Presentation Foundation uses legacy a algorithm for control layout. 자세한 내용은 완화: WPF 레이아웃을 참조하십시오.For more information, see Mitigation: WPF Layout. .NET Framework 4.6.NET Framework 4.6
Switch.MS.Internal.
UseSha1AsDefaultHashAlgorithmForDigitalSignatures
PackageDigitalSignatureManager에서 패키지의 일부에 서명 하는 데 사용 되는 기본 알고리즘이 SHA1 또는 s h a 1 인지 여부를 제어 합니다.Controls whether the default algorithm used for signing parts of a package by PackageDigitalSignatureManager is SHA1 or SHA256.
SHA1 관련 충돌 문제로 인해 SHA256을 사용하는 것이 좋습니다.Due to collision problems with SHA1, Microsoft recommends SHA256.
.NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.Activities.
UseMD5CryptoServiceProviderForWFDebugger
false로 설정 된 경우 FIPS를 사용 하도록 설정 된 경우 Visual Studio를 사용 하 여 XAML 기반 워크플로 프로젝트를 디버그할 수 있습니다.When set to false, allows debugging of XAML-based workflow projects with Visual Studio when FIPS is enabled. 이를 제외 하 고, NullReferenceException는 System.object 어셈블리의 메서드 호출에서 throw 됩니다.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
디버거의 워크플로 인스턴스에 대 한 체크섬이 MD5 또는 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
워크플로 체크섬 해시가 .NET Framework 4.7 (true)에서 기본값으로 도입 된 SHA1 알고리즘을 사용 하는지 또는false(.NET Framework 4.8)에서 기본값으로 도입 된 기본 SHA256 알고리즘을 사용 하는지 여부를 제어 합니다.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).
SHA1 관련 충돌 문제로 인해 SHA256을 사용하는 것이 좋습니다.Due to collision problems with SHA1, Microsoft recommends SHA256.
.NET Framework 4.8.NET Framework 4.8
Switch.System.Diagnostics.
IgnorePortablePDBsInStackTraces
이식 가능 Pdb를 사용할 때 스택 추적에서 가져올 것인지 여부를 제어 합니다. 소스 파일 및 줄 정보를 포함할 수 있습니다.Controls whether stack traces obtain when using portable PDBs can include source file and line information. 소스 파일 및 줄 정보를 포함 하려면 false 합니다. 그렇지 않으면 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
Icon 개체에 PNG 프레임이 있을 때 Icon.ToBitmap 메서드에서 예외를 throw 하는지 여부를 제어 합니다.Controls whether the Icon.ToBitmap method throws an exception when an Icon object has PNG frames. 자세한 내용은 완화: 아이콘 개체의 PNG 프레임을 참조하십시오.For more information, see Mitigation: PNG Frames in Icon Objects. .NET Framework 4.6.NET Framework 4.6
Switch.System.Drawing.Text.
DoNotRemoveGdiFontsResourcesFromFontCollection
PrivateFontCollection.AddFontFile(String) 메서드에 의해 컬렉션에 추가 될 때 System.Drawing.Text.PrivateFontCollection 개체가 제대로 삭제 되는지 여부를 확인 합니다.Determines whether System.Drawing.Text.PrivateFontCollection objects are properly disposed when added to the collection by the PrivateFontCollection.AddFontFile(String) method. 레거시 동작을 유지 하는 true 모든 전용 글꼴 개체를 삭제 하려면 false 합니다.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
PrintPreviewDialog의 성능이 네트워크 프린터에 최적화 되어 있는지 여부를 제어 합니다.Controls whether the performance of the PrintPreviewDialog is optimized for network printers. 자세한 내용은 PrintPreviewDialog 컨트롤 개요합니다.For more information, see PrintPreviewDialog control overview. .NET Framework 4.6.NET Framework 4.6
Switch.System.Globalization.EnforceJapaneseEraYearRanges 일본어 달력 연대에 대 한 연도 범위 검사가 적용 되는지 여부를 제어 합니다.Controls whether year range checks for Japanese calendar eras are enforced. 연도 범위 검사를 적용 하 false 고 사용 하지 않도록 설정 하는 true (기본 동작)true to enforce year range checks, and false to disable them (the default behavior). 자세한 내용은 달력을 사용 하 여 작업합니다.For more information, see Working with calendars. .NET Framework 4.6.NET Framework 4.6
Switch.System.Globalization.EnforceLegacyJapaneseDateParsing 구문 분석 작업에서 "1"만 일본 달력 연대의 첫 번째 연도로 인식 되는지 여부를 제어 합니다.Controls whether only "1" is recognized as the first year of a Japanese calendar era in parsing operations. "1"만 인식 true "1" 또는 Gannen (기본 동작)를 인식 하도록 false 합니다.true to recognize only "1"; false to recognize either "1" or Gannen (the default behavior). 자세한 내용은 달력을 사용 하 여 작업합니다.For more information, see Working with calendars. .NET Framework 4.6.NET Framework 4.6
Switch.System.Globalization.FormatJapaneseFirstYearAsANumber 서식 지정 작업에서 일본 달력 연대의 첫 해를 "1"로 나타낼지 아니면 Gannen로 표시할지를 제어 합니다.Controls whether the first year of a Japanese calendar era is represented as "1" or Gannen in formatting operations. 연대의 첫 해를 "1"로 서식 지정 하려면 true 합니다. Gannen로 서식 지정 false (기본 동작)true to format the era's first year as "1"; false to format it as Gannen (the default behavior). 자세한 내용은 달력을 사용 하 여 작업합니다.For more information, see Working with calendars. .NET Framework 4.6.NET Framework 4.6
Switch.System.Globalization.NoAsyncCurrentCulture 비동기 작업이 호출 하는 스레드의 컨텍스트에서 전달 되지 않는지 여부를 제어 합니다.Controls whether asynchronous operations do not flow from the calling thread's context. 자세한 내용은 CurrentCulture And CurrentUICulture flow to tasks을 참조 하세요.For more information, see CurrentCulture and CurrentUICulture flow across tasks. .NET Framework 4.6.NET Framework 4.6
Switch.System.IdentityModel.
DisableMultipleDNSEntriesInSANCertificate
X509CertificateClaimSet.FindClaims 메서드가 클레임 형식을 마지막 DNS 항목에만 일치 시 키 려 고 할지 여부를 제어 합니다.Controls whether the X509CertificateClaimSet.FindClaims method attempts to match the claim type only with the last DNS entry. 자세한 내용은 완화: X509CertificateClaimSet.FindClaims 메서드를 참조하십시오.For more information, see Mitigation: X509CertificateClaimSet.FindClaims Method. .NET Framework 4.6.1.NET Framework 4.6.1
Switch.System.IdentityModel.
EnableCachedEmptyDefaultAuthorizationContext
변경할 수 있는 개체를 반환 하기 위해 AuthorizationContext를 허용할지 여부를 제어 합니다.Controls whether to allow AuthorizationContext.Empty to return a mutable object. .NET Framework 4.6.NET Framework 4.6
Switch.System.IO.BlockLongPaths MAX_PATH (260 자) 보다 긴 경로가 PathTooLongException를 throw 하는지 여부를 제어 합니다.Controls whether paths longer than MAX_PATH (260 characters) throw a PathTooLongException. 자세한 내용은 긴 경로 지원을 참조 하세요.For more information, see Long Path Support. .NET Framework 4.6.2.NET Framework 4.6.2
Switch.System.IO.Compression.
DoNotUseNativeZipLibraryForDecompression
네이티브 OS 루틴이 DeflateStream 클래스의 압축을 푸는 데 사용 되는지 여부를 제어 합니다.Controls whether native OS routines are used for decompression by the DeflateStream class. 네이티브 Api를 사용 하려면 false 합니다. DeflateStream 구현을 사용 하려면 true 합니다.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
는 슬래시 ("/")가 아닌 백슬래시 ("\")를 ZipArchiveEntry.FullName 속성의 경로 구분 기호로 사용 합니다.Uses the backslash ("\") rather than the forward slash ("/") as the path separator in the ZipArchiveEntry.FullName property. 자세한 내용은 완화: ZipArchiveEntry 경로 구분 기호를 참조 하세요.For more information, see Mitigation: ZipArchiveEntry.FullName Path Separator. .NET Framework 4.6.1.NET Framework 4.6.1
Switch.System.IO.Ports.
DoNotCatchSerialStreamThreadExceptions
SerialPort 스트림으로 만든 백그라운드 스레드에서 throw 된 운영 체제 예외가 프로세스를 종료 하는지 여부를 제어 합니다.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
레거시 경로 정규화를 사용 하 고 Path.GetDirectoryNamePath.GetPathRoot 메서드에서 URI 경로를 지원 하는지 여부를 제어 합니다.Controls whether legacy path normalization is used and URI paths are supported by the Path.GetDirectoryName and Path.GetPathRoot methods. 자세한 내용은 완화: 경로 정규화완화: 경로 콜론 확인을 참조 하세요.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
같은지 테스트 한 개체의 MemberDescriptor.Category 속성과 두 번째 개체의 MemberDescriptor.Description 속성을 비교 하는지 여부를 제어 합니다.Controls whether a test for equality compares the MemberDescriptor.Category property of one object with the MemberDescriptor.Description property of the second object. 자세한 내용은 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
EKU (인증서 확장 키 사용) OID (개체 식별자) 유효성 검사를 사용 하지 않도록 설정 합니다.Disables certificate enhanced key usage (EKU) object identifier (OID) validation. EKU(향상된 키 사용) 확장은 키를 사용하는 애플리케이션을 나타내는 OID(개체 식별자)의 모음입니다.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
SCH_SEND_AUX_RECORD 사용을 사용 하지 않도록 설정 하 여 SSL/TLS (비스 트) 완화에 대해 TLS 1.0 브라우저 익스플로잇을 사용 하지 않도록 설정 합니다.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
System.Net.ServicePointManagerSystem.Net.Security.SslStream 클래스가 SSL 3.0 프로토콜을 사용할 수 있는지 여부를 제어 합니다.Controls whether the System.Net.ServicePointManager and System.Net.Security.SslStream classes can use the SSL 3.0 protocol. 자세한 내용은 완화: TLS 프로토콜을 참조하십시오.For more information, see Mitigation: TLS Protocols. .NET Framework 4.6.NET Framework 4.6
Switch.System.Net.
DontEnableSystemDefaultTlsVersions
SystemDefault TLS 버전을 Tls12, Tls11, 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
SslStream TLS 서버 쪽 경고를 사용 하지 않도록 설정 합니다.Disables SslStream TLS server-side Alerts. .NET Framework 4.7.NET Framework 4.7
Switch.System.Runtime.InteropServices.
DoNotMarshalOutByrefSafeArrayOnInvoke
COM interop 이벤트에 대 한 ByRef SafeArray 매개 변수가 네이티브 코드 (false)로 마샬링 되는지 아니면 네이티브 코드로의 마샬링이 사용 하지 않도록 설정 되었는지 (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
DataContractJsonSerializer 가 ECMAScript V6 및 V8 표준을 기반으로 일부 제어 문자를 serialize 하는지 여부를 제어 합니다.Controls whether the DataContractJsonSerializer serializes some control characters based on the ECMAScript V6 and V8 standards. 자세한 내용은 완화: DataContractJsonSerializer로 제어 문자 serialization을 참조하세요.For more information, see Mitigation: Serialization of Control Characters with the DataContractJsonSerializer .NET Framework 4.7.NET Framework 4.7
Switch.System.Runtime.Serialization.
DoNotUseTimeZoneInfo
DataContractJsonSerializer에서 여러 조정 또는 표준 시간대에 대 한 단일 조정을 지원 하는지 여부를 제어 합니다.Controls whether the DataContractJsonSerializer supports multiple adjustments or only a single adjustment for a time zone. true경우 TimeZoneInfo 형식을 사용 하 여 날짜 및 시간 데이터를 직렬화 및 deserialize 합니다. 그렇지 않으면 여러 조정 규칙을 지원 하지 않는 TimeZone 유형을 사용 합니다.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 개체 serialization 및 deserialization 중 System.Runtime.Serialization.ObjectManager에서 더 큰 배열 크기를 사용할지 여부를 제어 합니다.Controls whether System.Runtime.Serialization.ObjectManager uses a larger array size during object serialization and deserialization. 이 스위치를 true으로 설정 하 여 BinaryFormatter같은 형식으로 많은 개체 그래프의 serialization 및 deserialization 성능을 향상 시킬 수 있습니다.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
ClaimsIdentity.ClaimsIdentity(IIdentity) 생성자가 새 개체의 ClaimsIdentity.Actor 속성을 기존 개체 참조로 설정 하는지 여부를 제어 합니다.Controls whether the ClaimsIdentity.ClaimsIdentity(IIdentity) constructor sets the new object's ClaimsIdentity.Actor property with an existing object reference. 자세한 내용은 완화: ClaimsIdentity 생성자를 참조하세요.For more information, see Mitigation: ClaimsIdentity Constructor. .NET Framework 4.6.2.NET Framework 4.6.2
Switch.System.Security.Cryptography.
AesCryptoServiceProvider.DontCorrectlyResetDecryptor
AesCryptoServiceProvider 암호 해독기를 다시 사용 하려고 하면 CryptographicExceptionthrow 되는지 여부를 제어 합니다.Controls whether the attempt to reuse an AesCryptoServiceProvider decryptor throws a CryptographicException. 자세한 내용은 AesCryptoServiceProvider 암호 해독기에서 다시 사용할 수 있는 변환 제공을 참조 하세요.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
System.security.cryptography.cspparameters.parentwindowhandle 속성의 값이 창 핸들의 메모리 위치를 나타내는 IntPtr 또는 창 핸들 (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). 자세한 내용은 완화: CspParameters.ParentWindowHandle에 HWND 필요를 참조하세요.For more information, see Mitigation: CspParameters.ParentWindowHandle Expects an HWND. .NET Framework 4.7.NET Framework 4.7
Switch.System.Security.Cryptography.
UseLegacyFipsThrow
FIPS 모드에서 관리 되는 암호화 클래스를 사용 하 여 CryptographicException (true)를 throw 하거나 시스템 라이브러리 (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
일부 SignedCMS 작업에 대 한 기본값이 SHA1 또는 s h a 1 인지 여부를 결정 합니다.Determines whether the default for some SignedCMS operations is SHA1 or SHA256.
SHA1 관련 충돌 문제로 인해 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
ECDsaCertificateExtensions.GetECDsaPublicKey 메서드가 운영 체제에서 지원 되는 모든 명명 된 곡선 (false)을 올바르게 처리할지 또는 레거시 동작으로 되돌리는 지를 제어 합니다.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
일부 기능을 수행 하는 Xml 작업의 기본값이 SHA1 또는 s h a 1 인지 여부를 결정 합니다.Determines whether the default for some SignedXML operations is SHA1 or SHA256.
SHA1 관련 충돌 문제로 인해 SHA256을 사용하는 것이 좋습니다.Due to collision problems with SHA1, Microsoft recommends SHA256.
.NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.ServiceModel.
AllowUnsignedToHeader
TransportWithMessageCredential 보안 모드에서 부호 없는 "to" 헤더가 있는 메시지를 허용 하는지 여부를 확인 합니다.Determines whether the TransportWithMessageCredential security mode allows messages with an unsigned "to" header. 이 스위치는 옵트인 스위치입니다.This is an opt-in switch. 자세한 내용은 .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>
요소 중 하나가 null경우 AddressHeaderCollection(IEnumerable<AddressHeader>) 생성자가 ArgumentException를 throw 하는지 여부를 제어 합니다.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
CSG 키 저장소 공급자와 함께 X509 인증서를 사용 하려고 하면 예외가 throw 되는지 여부를 결정 합니다.Determines whether the attempt to use X509 certificates with a CSG key storage provider throws an exception. 자세한 내용은 WCF 전송 보안에서 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
자체 호스팅 서비스에서 HTTP 전송을 사용 하는 경우이 값을 true로 설정 하면 WCF에서 요청에 대 한 응답 헤더에 Connection: close 헤더를 추가 하는 응용 프로그램을 무시 합니다.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. 이 값을 false로 설정 하면 응답 헤더에 Connection: close 헤더를 추가할 수 있으며,이로 인해 응답이 전송 된 후에 요청 소켓이 닫힙니다.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
재진입용 서비스의 인스턴스를 한 번에 하나의 실행 스레드로 제한 하 여 발생 하는 교착 상태를 처리 합니다.Handles deadlocks that result from restricting instances of a re-entrant service to a single thread of execution at a time. .NET Framework 4.6.2.NET Framework 4.6.2
Switch.System.ServiceModel.
DisableUsingServicePointManagerSecurityProtocols
Switch.System.Net.DontEnableSchUseStrongCrypto와 함께 WCF 메시지 보안에서 TLS 1.1 및 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
false 값은 운영 체제에서 프로토콜을 선택할 수 있도록 기본 구성을 설정 합니다.A value of false sets the default configuration to allow the operating system to choose the protocol. true 값은 기본값을 사용 가능한 가장 높은 프로토콜로 설정 합니다.A value of true sets the default to the highest protocol available. (이전 프레임 워크 버전의 서비스 분기 에서도 사용할 수 있음)(Also available on servicing branch of previous framework versions) .NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.ServiceModel.
UseSha1InMsmqEncryptionAlgorithm
WCF의 MSMQ 메시지에 대 한 기본 메시지 서명 알고리즘이 SHA1 또는 s h a 1 인지 여부를 결정 합니다.Determines whether the default message signing algorithm for MSMQ messages in WCF is SHA1 or SHA256.
SHA1 관련 충돌 문제로 인해 SHA256을 사용하는 것이 좋습니다.Due to collision problems with SHA1, Microsoft recommends SHA256.
.NET Framework 4.7.1.NET Framework 4.7.1
Switch.System.ServiceModel.
UseSha1InPipeConnectionGetHashAlgorithm
WCF가 SHA1 또는 SHA256 해시를 사용 하 여 명명 된 파이프에 대 한 무작위 이름을 생성 하는지 여부를 제어 합니다.Controls whether WCF uses a SHA1 or a SHA256 hash to generate random names for named pipes.
SHA1 관련 충돌 문제로 인해 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
예외 메시지가 null 인 경우 NullReferenceException 을 throw 할지 여부를 제어 합니다.Controls whether to throw a NullReferenceException when the exception message is null. .NET Framework 4.7.NET Framework 4.7
Switch.System.ServiceProcess.
DontThrowExceptionsOnStart
서비스 시작 시 throw 된 예외가 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 Timer 인스턴스가 높은 규모의 환경에 대 한 성능 향상을 활용할 지 여부를 제어 합니다.Controls whether Timer instances take advantage of performance improvements for high-scale environments. true경우 성능을 향상 시킬 수 있습니다. false (기본값) 이면 해당 값을 사용할 수 없습니다.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
간혹 디코딩되는 특정 백분율 인코딩된 문자가 이제 일관 되 게 왼쪽으로 인코딩 되는지 여부를 결정 합니다.Determines whether certain percent-encoded characters that were sometimes decoded are now consistently left encoded. true경우 디코딩됩니다. 그렇지 않으면 false합니다.If true, they are decoded; otherwise, false. .NET Framework 4.7.2.NET Framework 4.7.2
Switch.System.Uri.
DontKeepUnicodeBidiFormattingCharacters
Uri에서 유니코드 양방향 문자를 처리 하는 방법을 결정 합니다.Determines the handling of Unicode bidirectional characters in URIs. Uri에서 제거 하려면 true 합니다. false 하 여 유지 하 고 비율을 인코딩합니다.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
*열에 공간을 할당할 때 Windows Presentation Foundation 이전 알고리즘 (true) 또는 새 알고리즘 (false)을 적용할지 여부를 결정 합니다.Determines whether Windows Presentation Foundation applies an old algorithm (true) or a new algorithm (false) in allocating space to *-columns. 자세한 내용은 완화: Grid 컨트롤의 별 열 공간 할당을 참조하세요.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
선택 변경 이벤트를 발생 시키기 전에 선택기 또는 탭 컨트롤이 항상 선택 된 값 속성의 값을 업데이트 하는지 여부를 제어 합니다.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
폐색 텍스트 (false)를 방지 하기 위해 TextBoxPasswordBox 컨트롤에 대해 비 표시기 기반 선택 렌더링을 사용할 수 있는지 또는 표시기 계층 (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
System.Windows.Data.Binding 클래스에서 사용자 지정 IList 인덱서가 잘못 사용 (true) 되는지 또는 올바르게 사용 되는지 (false)를 제어 합니다.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 DPI 변경이 시스템 단위 (false값) 또는 모니터 단위 기준 (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
모니터 당 인식 모드로 WPF를 실행할 때 System.Windows.Interop.HwndHost에서 컨트롤의 크기를 조정할 수 있는지 여부를 제어 합니다 (true) 또는 사용 (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
컨트롤 텍스트가 있을 때 개발자가 특별히 DomainUpDown.UpButton() 작업을 처리 해야 하는지 여부를 결정 합니다.Determines whether the developer needs to specially handle the DomainUpDown.UpButton() action when control text is present. UpButton() 동작을 처리 true DomainUpDown.UpButton()DomainUpDown.DownButton() 작업이 제대로 동기화 false 합니다.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
Application.FilterMessage 메서드가 호출 될 때 예외를 throw 하지 않고 사용자 지정 IMessageFilter.PreFilterMessage 구현이 메시지를 안전 하 게 필터링 할 수 있도록 하는 코드를 Opts 합니다.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. 자세한 내용은 완화: 사용자 지정 IMessageFilter.PreFilterMessage 구현을 참조하십시오.For more information, see Mitigation: Custom IMessageFilter.PreFilterMessage Implementations. .NET Framework 4.6.1.NET Framework 4.6.1
Switch.System.Windows.Forms.
UseLegacyContextMenuStripSourceControlValue
사용자가 중첩 된 ToolStripMenuItem 컨트롤에서 메뉴를 열 때 ContextMenuStrip.SourceControl 속성이 소스 제어를 반환 하는지 여부를 확인 합니다.Determines whether the ContextMenuStrip.SourceControl property returns the source control when the user opens the menu from a nested ToolStripMenuItem control. 레거시 동작을 true null를 반환 합니다. 원본 제어를 반환 하려면 false 합니다.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 도구 설명 호출 지원을 사용 하지 않도록 설정 (true) 하거나 사용 (false) 할지 여부를 제어 합니다.Controls whether tooltip invocation support is disabled (true) or enabled (false). 도구 설명 호출 지원을 사용 하려면 Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2Switch.UseLegacyAccessibilityFeatures.3 모두 사용 하지 않도록 설정 된 레거시 접근성 기능이 필요 합니다 (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
WPF 응용 프로그램에서 선택적 WM_POINTER기반 터치/스타일러스 스택을 사용 하도록 설정할지 여부를 결정 합니다.Determines whether an optional WM_POINTER-based touch/stylus stack is enabled in WPF applications. 자세한 내용은 완화: 포인터 기반 터치 및 스타일러스 지원 을 참조 하세요.For more information, see Mitigation: Pointer-based Touch and Stylus Support .NET Framework 4.7.NET Framework 4.7
Switch.System.Windows.Markup.
DoNotUseSha256ForMarkupCompilerChecksumAlgorithm
체크섬에 사용 되는 기본 해시 알고리즘이 SHA256 (false) 또는 SHA1 (true) 인지 여부를 확인 합니다.Determines whether the default hash algorithm used for checksums is SHA256 (false) or SHA1 (true).
SHA1 관련 충돌 문제로 인해 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
예외 (예: system.io.directorynotfoundexception> 또는 system.io.filenotfoundexception)의 원인을 보다 구체적으로 지정 하는 예외 대신 레거시 NullReferenceException throw 되는지 여부를 제어 합니다.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. 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
워크플로 프로젝트 빌드에서 XOML 파일의 체크섬 해시가 MD5 알고리즘 (true)을 사용 하는지 또는 4.8 .NET Framework에서 기본값으로 도입 된 SHA256 알고리즘을 사용 하는지 여부를 제어 합니다.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.
MD5 관련 충돌 문제로 인해 SHA256을 사용하는 것이 좋습니다.Due to collision problems with MD5, Microsoft recommends SHA256.
.NET Framework 4.8.NET Framework 4.8
Switch.System.Workflow.Runtime.
UseLegacyHashForSqlTrackingCacheKey
SqlTrackingService의 체크섬 해시가 캐시 된 문자열에 대해 MD5 알고리즘 (true)을 사용 하는지 여부 또는 4.8 .NET Framework에서 기본값으로 도입 된 SHA256 알고리즘을 사용 하는지 여부를 제어 합니다.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.
MD5 관련 충돌 문제로 인해 SHA256을 사용하는 것이 좋습니다.Due to collision problems with MD5, Microsoft recommends SHA256.
.NET Framework 4.8.NET Framework 4.8
Switch.System.Workflow.Runtime.
UseLegacyHashForWorkflowDefinitionDispenserCacheKey
워크플로 런타임에의 한 체크섬 해시가 캐시 된 워크플로 정의에 MD5 알고리즘 (true)을 사용 하는지 여부 또는 4.8 .NET Framework에서 기본값으로 도입 된 SHA256 알고리즘을 사용 하는지 여부를 제어 합니다.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.
MD5 관련 충돌 문제로 인해 SHA256을 사용하는 것이 좋습니다.Due to collision problems with MD5, Microsoft recommends SHA256.
.NET Framework 4.8.NET Framework 4.8
Switch.UseLegacyAccessibilityFeatures .NET Framework 4.7.1부터 사용할 수 있는 내게 필요한 옵션 기능을 사용 하거나 사용 하지 않도록 설정할지 여부를 제어 합니다.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 .NET Framework 4.7.2에서 사용할 수 있는 내게 필요한 옵션 기능을 사용할 수 있는지 여부를 제어 합니다 (false) 또는 사용 안 함 (true).Controls whether accessibility features available in .NET Framework 4.7.2 are enabled (false) or disabled (true). true경우 .NET Framework 4.7.1 접근성 기능을 사용 하려면 Switch.UseLegacyAccessibilityFeatures true 해야 합니다.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 .NET Framework 4.8에 도입 된 내게 필요한 옵션 기능이 사용 (false) 또는 사용 안 함 (true) 인지 여부를 제어 합니다.Controls whether accessibility features introduced in .NET Framework 4.8 are enabled (false) or disabled (true). true경우 Switch.UseLegacyAccessibilityFeaturesSwitch.UseLegacyAccessibilityFeatures.2true해야 합니다.If true, Switch.UseLegacyAccessibilityFeatures and Switch.UseLegacyAccessibilityFeatures.2 must also be true. .NET Framework 4.8.NET Framework 4.8
Switch.UseLegacyToolTipDisplay 사용자가 WPF 컨트롤 위로 마우스 커서를 이동 하거나 (true) 키보드 포커스와 키보드 바로 가기 키 (false기본 동작)를 사용 하 여 도구 설명을 표시할지 여부를 제어 합니다.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). .NET Framework 4.8에서 실행 되지만 이전 버전의 .NET Framework를 대상으로 하는 응용 프로그램의 경우 키보드 포커스 및 바로 가기 키 지원을 모두 사용 하려면 Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2Switch.UseLegacyAccessibilityFeatures.3 모두 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
Switch.System.Xml.
IgnoreEmptyKeySequences
복합 키의 빈 키 시퀀스가 XSD 스키마 유효성 검사에서 무시 되는지 여부를 제어 합니다.Controls whether empty key sequences in compound keys are ignored by XSD schema validation. 자세한 내용은 완화: XML 스키마 유효성 검사를 참조 하세요.For more information, see Mitigation: XML Schema Validation. .NET Framework 4.6.NET Framework 4.6

참고

AppContextSwitchOverrides 요소를 응용 프로그램 구성 파일에 추가 하는 대신 static (의 C#경우) 또는 Shared (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.

라이브러리 개발자는 호출자가 이후 버전의 라이브러리에 도입 된 변경 된 기능을 옵트아웃 (opt out) 할 수 있도록 사용자 지정 스위치를 정의할 수도 있습니다.Library developers can also define custom switches to allow callers to opt out of changed functionality introduced in later versions of their libraries. 자세한 내용은 AppContext 클래스 참조하세요.For more information, see the AppContext class.

ASP.NET 응용 프로그램의 스위치Switches in ASP.NET applications

< 요소를 추가 하 여 web.config 파일의 <appSettings > 섹션에 호환성 설정을 사용 하도록 ASP.NET 응용 프로그램을 구성할 수 있습니다.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.

다음 예제에서는 <add> 요소를 사용 하 여 web.config 파일의 <appSettings> 섹션에 두 설정을 추가 합니다.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>

Example

다음 예제에서는 AppContextSwitchOverrides 요소를 사용 하 여 비동기 메서드 호출에서 문화권이 스레드 간에 흐르는 것을 방지 하는 단일 응용 프로그램 호환성 스위치 Switch.System.Globalization.NoAsyncCurrentCulture를 정의 합니다.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>

다음 예제에서는 AppContextSwitchOverrides 요소를 사용 하 여 Switch.System.Globalization.NoAsyncCurrentCultureSwitch.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. 세미콜론은 두 개의 이름/값 쌍을 구분 합니다.A semicolon separates the two name/value pairs.

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

참조See also