diff --git a/Documentation/compatibility/! Template.md b/Documentation/compatibility/! Template.md index 5b0354868..7afbd4656 100644 --- a/Documentation/compatibility/! Template.md +++ b/Documentation/compatibility/! Template.md @@ -6,7 +6,7 @@ ### Scope [|Major|Minor|Edge|Transparent|] -//A description of the Scope values can be found at https://docs.microsoft.com/en-us/dotnet/articles/framework/migration-guide/net-compatibility-diagnostics +//A description of the Scope values can be found at https://docs.microsoft.com/dotnet/articles/framework/migration-guide/net-compatibility-diagnostics ### Version Introduced [|Version in which the breaking change first occurred|] @@ -39,7 +39,7 @@ [| List of APIs affected by change referred to using docids|] // For details on how to generate docids, please look at other change files or -// see https://msdn.microsoft.com/en-us/library/fsbx0t7x.aspx for the spec. +// see https://msdn.microsoft.com/library/fsbx0t7x.aspx for the spec. // // For example, if all members of System.Xml.XmlTextReader is affected, we would have the following item: // * `T:System.Xml.XmlTextReader` diff --git a/Documentation/compatibility/ASPNET-accessibility-improvement.md b/Documentation/compatibility/ASPNET-accessibility-improvement.md index 33c60eb3b..0e3fc930f 100644 --- a/Documentation/compatibility/ASPNET-accessibility-improvement.md +++ b/Documentation/compatibility/ASPNET-accessibility-improvement.md @@ -27,20 +27,20 @@ Starting with the .NET Framework 4.7.1, ASP.NET has improved how ASP.NET Web Con ### Recommended Action -**How to opt in or out of these changes** - +**How to opt in or out of these changes** + In order for the Visual Studio Designer to benefit from these changes, it must run on the .NET Framework 4.7.1 or later. The web application can benefit from these changes in either of the following ways: - Install Visual Studio 2017 15.3 or later, which supports the new accessibility features with the following AppContext Switch by default. -- Opt out of the legacy accessibility behaviors by adding the `Switch.UseLegacyAccessibility` AppContext switch to the `` section in the devenv.exe.config file and setting it to `false`, as the following example shows. +- Opt out of the legacy accessibility behaviors by adding the `Switch.UseLegacyAccessibilityFeatures` AppContext switch to the `` section in the devenv.exe.config file and setting it to `false`, as the following example shows. ```xml ... - + ... diff --git a/Documentation/compatibility/Change-SignedXML-and-SignedCMS-default-algorithms-to-SHA256.md b/Documentation/compatibility/Change-SignedXML-and-SignedCMS-default-algorithms-to-SHA256.md index e893fa3ee..76ad8dd4e 100644 --- a/Documentation/compatibility/Change-SignedXML-and-SignedCMS-default-algorithms-to-SHA256.md +++ b/Documentation/compatibility/Change-SignedXML-and-SignedCMS-default-algorithms-to-SHA256.md @@ -10,7 +10,7 @@ Minor NotPlanned ### Change Description -In the .NET Framework 4.7 and earlier, SignedXML and SignedCMS default to SHA1 for some operations. +In the .NET Framework 4.7 and earlier, SignedXML and SignedCMS default to SHA1 for some operations. Starting with the .NET Framework 4.7.1, SHA256 is enabled by default for these operations. This change is necessary because SHA1 is no longer considered to be secure. @@ -24,13 +24,13 @@ There are two new context switch values to control whether SHA1 (insecure) or SH - Switch.System.Security.Cryptography.Pkcs.UseInsecureHashAlgorithms -For applications that target the .NET Framework 4.7.1 and later versions, if the use of SHA256 is undesirable, you can restore the default to SHA1 by adding the following configuration switch to the [runtime](https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/runtime/runtime-element) section of your app config file: +For applications that target the .NET Framework 4.7.1 and later versions, if the use of SHA256 is undesirable, you can restore the default to SHA1 by adding the following configuration switch to the [runtime](~/docs/framework/configure-apps/file-schema/runtime/runtime-element.md) section of your app config file: ```xml ``` -For applications that target the .NET Framework 4.7 and earlier versions, you can opt into this change by adding the following configuration switch to the [runtime](https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/runtime/runtime-element) section of your app config file: +For applications that target the .NET Framework 4.7 and earlier versions, you can opt into this change by adding the following configuration switch to the [runtime](~/docs/framework/configure-apps/file-schema/runtime/runtime-element.md) section of your app config file: ```xml diff --git a/Documentation/compatibility/README.md b/Documentation/compatibility/README.md index 8aae91d82..49c80d84c 100644 --- a/Documentation/compatibility/README.md +++ b/Documentation/compatibility/README.md @@ -93,6 +93,7 @@ Please help us improve the [.NET Framework Application Compatibility documents]( - [Attempting a TCP/IP connection to a SQL Server database that resolves to `localhost` fails](sql-server-database-connection-that-resolves-to-localhost.md) - [Calling Attribute.GetCustomAttributes on an indexer property no longer throws AmbiguousMatchException if the ambiguity can be resolved by index's type](calling-attribute_getcustomattributes-on-an-indexer-property-no-longer-throws-ambiguousmatchexception.md) - [Calling CreateDefaultAuthorizationContext with a null argument has changed](calling-createdefaultauthorizationcontext-with-a-null-argument-has-changed.md) +- [Certificate EKU OID validation](certificate-eku-oid-validation.md) - [ClickOnce supports SHA-256 on 4.0-targeted apps](clickonce-supports-sha-256-on-4_0-targeted-apps.md) - [CoerceIsSelectionBoxHighlighted](coerceisselectionboxhighlighted.md) - [ContentDisposition DateTimes returns slightly different string](contentdisposition-datetimes-returns-slightly-different-string.md) @@ -110,7 +111,8 @@ Please help us improve the [.NET Framework Application Compatibility documents]( - [Reflection objects can no longer be passed from managed code to out-of-process DCOM clients](reflection-objects-can-no-longer-be-passed-from-managed-code-to-out-of-process-dcom-clients.md) - [TargetFrameworkName for default app domain no longer defaults to null if not set](targetframeworkname-for-default-app-domain-no-longer-defaults-to-null-if-not-set.md) - [The .NET Framework 4.6 does not use a 4.5.x.x version when registering itself in the registry](the-_net-framework-4_6-does-not-use-a-4_5_x_x-version-when-registering-itself-in-the-registry.md) -- [WCF services that use NETTCP with SSL sercurity and MD5 certificate authentication](wcf-services-using-nettcp-with-ssl-security-and-md5-certificate-authentication.md) +- [TLS 1.x by default passes the SCH_SEND_AUX_RECORD flag to the underlying SCHANNEL API](tls-1-x-by-default-passes-sch-send-aux-record-flag-to-the-underlying-schannel-api.md) +- [WCF services that use NETTCP with SSL security and MD5 certificate authentication](wcf-services-using-nettcp-with-ssl-security-and-md5-certificate-authentication.md) - [WPF layout rounding of margins has changed](wpf-layout-rounding-of-margins-has-changed.md) - [WPF spell checking in text-enabled controls will not work in Windows 10 for languages not in the OS's input language list](wpf-spell-checking-in-text-enabled-controls-will-not-work-in-windows-10-for-languages-not-in-the-input-language-list.md) - [WPF windows are rendered without clipping when extending outside a single monitor](wpf-windows-are-rendered-without-clipping-when-extending-outside-a-single-monitor.md) diff --git a/Documentation/compatibility/SerialPort-background-thread-exceptions.md b/Documentation/compatibility/SerialPort-background-thread-exceptions.md index 13071bafc..920548067 100644 --- a/Documentation/compatibility/SerialPort-background-thread-exceptions.md +++ b/Documentation/compatibility/SerialPort-background-thread-exceptions.md @@ -10,9 +10,9 @@ Minor NotPlanned ### Change Description -Background threads created with streams no longer terminate the process when OS exceptions are thrown. +Background threads created with streams no longer terminate the process when OS exceptions are thrown. -In applications that target the .NET Framework 4.7 and earlier versions, a process is terminated when an operating system exception is thrown on a background thread created with a stream. +In applications that target the .NET Framework 4.7 and earlier versions, a process is terminated when an operating system exception is thrown on a background thread created with a stream. In applications that target the .NET Framework 4.7.1 or a later version, background threads wait for OS events related to the active serial port and could crash in some cases, such as sudden removal of the serial port. @@ -21,7 +21,7 @@ In applications that target the .NET Framework 4.7.1 or a later version, backgro ### Recommended Action -For apps that target the .NET Framework 4.7.1, you can opt out of the exception handling if it is not desirable by adding the following to to the `` section of your `app.config` file: +For apps that target the .NET Framework 4.7.1, you can opt out of the exception handling if it is not desirable by adding the following to the `` section of your `app.config` file: ```xml @@ -29,7 +29,7 @@ For apps that target the .NET Framework 4.7.1, you can opt out of the exception ``` -For apps that target earlier versions of the .NET Framework but run on the .NET Framework 4.7.1 or later, you can opt in to the exception handling by adding the following to to the `` section of your `app.config` file: +For apps that target earlier versions of the .NET Framework but run on the .NET Framework 4.7.1 or later, you can opt in to the exception handling by adding the following to the `` section of your `app.config` file: ```xml diff --git a/Documentation/compatibility/ServiceBase-doesnt-propagate-OnStart-exceptions.md b/Documentation/compatibility/ServiceBase-doesnt-propagate-OnStart-exceptions.md index 0b45c0a43..27210e6ba 100644 --- a/Documentation/compatibility/ServiceBase-doesnt-propagate-OnStart-exceptions.md +++ b/Documentation/compatibility/ServiceBase-doesnt-propagate-OnStart-exceptions.md @@ -13,9 +13,9 @@ NotPlanned ### Change Description -In the .NET Framework 4.7 and earlier versions, exceptions thrown on service startup are not propagated to the caller of . +In the .NET Framework 4.7 and earlier versions, exceptions thrown on service startup are not propagated to the caller of . -Starting with applications that target the .NET Framework 4.7.1, the runtime propagates exceptions to for services that fail to start. +Starting with applications that target the .NET Framework 4.7.1, the runtime propagates exceptions to for services that fail to start. - [x] Quirked - [ ] Build-time break diff --git a/Documentation/compatibility/SignedXml.GetPublicKey-returns-RSACng-on-net462.md b/Documentation/compatibility/SignedXml.GetPublicKey-returns-RSACng-on-net462.md index 70443b8b9..f71f70bb3 100644 --- a/Documentation/compatibility/SignedXml.GetPublicKey-returns-RSACng-on-net462.md +++ b/Documentation/compatibility/SignedXml.GetPublicKey-returns-RSACng-on-net462.md @@ -14,14 +14,14 @@ NotPlanned ### Change Description -Starting with the .NET Framework 4.6.2, the concrete type of the object returned by the method changed (without a quirk) from a CryptoServiceProvider implementation to a Cng implementation. This is because the implementation changed from using `certificate.PublicKey.Key` to using the internal `certificate.GetAnyPublicKey` which forwards to . +Starting with the .NET Framework 4.6.2, the concrete type of the object returned by the method changed (without a quirk) from a CryptoServiceProvider implementation to a Cng implementation. This is because the implementation changed from using `certificate.PublicKey.Key` to using the internal `certificate.GetAnyPublicKey` which forwards to . - [x] Quirked - [ ] Build-time break ### Recommended Action -Starting with apps running on the .NET Framework 4.7.1, you can use the CryptoServiceProvider implementation used by default in the .NET Framework 4.6.1 and earlier versions by adding the following configuration switch to the [runtime](https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/runtime/runtime-element) section of your app config file: +Starting with apps running on the .NET Framework 4.7.1, you can use the CryptoServiceProvider implementation used by default in the .NET Framework 4.6.1 and earlier versions by adding the following configuration switch to the [runtime](~/docs/framework/configure-apps/file-schema/runtime/runtime-element.md) section of your app config file: ```xml diff --git a/Documentation/compatibility/WCF-AddressHeaderCollection-now-throws-an-ArgumentException-if-an-addressHeader-element-is-null.md b/Documentation/compatibility/WCF-AddressHeaderCollection-now-throws-an-ArgumentException-if-an-addressHeader-element-is-null.md index d1f8ff4c4..323b52053 100644 --- a/Documentation/compatibility/WCF-AddressHeaderCollection-now-throws-an-ArgumentException-if-an-addressHeader-element-is-null.md +++ b/Documentation/compatibility/WCF-AddressHeaderCollection-now-throws-an-ArgumentException-if-an-addressHeader-element-is-null.md @@ -10,7 +10,7 @@ Minor NotPlanned ### Change Description -Starting with the .NET Framework 4.7.1, the `M:System.ServiceModel.Channels.AddressHeaderCollection.#ctor(System.Collections.Generic.IEnumerable{System.ServiceModel.Channels.AddressHeader})` constructor throws an `T:System.ArgumentException` if one of the elements is `null`. In the .NET Framework 4.7 and earlier versions, no exception is thrown. +Starting with the .NET Framework 4.7.1, the constructor throws an if one of the elements is `null`. In the .NET Framework 4.7 and earlier versions, no exception is thrown. ### Recommended Action If you encounter compatibility issues with this change on the .NET Framework 4.7.1 or a later version, you can opt-out of it by adding the following line to the `` section of the app.config file:: @@ -27,7 +27,7 @@ If you encounter compatibility issues with this change on the .NET Framework 4.7 * `M:System.ServiceModel.Channels.AddressHeaderCollection.#ctor(System.Collections.Generic.IEnumerable{System.ServiceModel.Channels.AddressHeader})` ### Category -* Windows Communication Foundation (WCF) +Windows Communication Foundation (WCF) + + diff --git a/Documentation/compatibility/change-in-path-separator-character-in-zip-files.md b/Documentation/compatibility/change-in-path-separator-character-in-zip-files.md index a202005df..bbdf827c8 100644 --- a/Documentation/compatibility/change-in-path-separator-character-in-zip-files.md +++ b/Documentation/compatibility/change-in-path-separator-character-in-zip-files.md @@ -20,7 +20,7 @@ Decompressing a zip file created by an app that targets a previous version of th ### Recommended Action -The impact of this change on .ZIP files that are decompressed on the Windows operating system by APIs in the .NET Framework namespace should be minimal, since these APIs can seamlessly handle either a slash ("/") or a backslash ("\\") as the path separator character. +The impact of this change on .ZIP files that are decompressed on the Windows operating system by APIs in the .NET Framework namespace should be minimal, since these APIs can seamlessly handle either a slash ("/") or a backslash ("\\") as the path separator character. If this change is undesirable, you can opt out of it by adding a configuration setting to the [``](https://docs.microsoft.com/dotnet/framework/configure-apps/file-schema/runtime/runtime-element.md) section of your application configuration file. The following example shows both the ` property of the parent. -- [ ] Quirked // Uses some mechanism to turn the feature on or off, usually using runtime targeting, AppContext or config files. Needs to be turned on automatically for some situations. -- [ ] Build-time break // Causes a break if attempted to recompile +- [ ] Quirked +- [ ] Build-time break ### Recommended Action None. This change conforms to the expected behavior for controls inside a control. diff --git a/Documentation/compatibility/connection-pool-blocking-period-for-azure-sql-databases-is-removed.md b/Documentation/compatibility/connection-pool-blocking-period-for-azure-sql-databases-is-removed.md index ae55515cb..8f3f37d62 100644 --- a/Documentation/compatibility/connection-pool-blocking-period-for-azure-sql-databases-is-removed.md +++ b/Documentation/compatibility/connection-pool-blocking-period-for-azure-sql-databases-is-removed.md @@ -24,7 +24,7 @@ In the .NET Framework 4.6.1 and earlier versions, when an app encounters a transient connection failure when connecting to a database, the connection attempt cannot be retried quickly, because the connection pool caches the error and re-throws it for 5 seconds to 1 minute. For more information, see -[SQL Server Connection Pooling (ADO.NET)](https://docs.microsoft.com/en-us/dotnet/articles/framework/data/adonet/sql-server-connection-pooling). +[SQL Server Connection Pooling (ADO.NET)](~/docs/framework/data/adonet/sql-server-connection-pooling.md). This behavior is problematic for connections to Azure SQL databases, which often fail with transient errors that are typically recovered from within a few seconds. The connection pool blocking feature means that the app cannot connect diff --git a/Documentation/compatibility/cspparameters_parentwindowhandle-now-expects-hwnd-value.md b/Documentation/compatibility/cspparameters_parentwindowhandle-now-expects-hwnd-value.md index 6f846a8ad..1cabf4756 100644 --- a/Documentation/compatibility/cspparameters_parentwindowhandle-now-expects-hwnd-value.md +++ b/Documentation/compatibility/cspparameters_parentwindowhandle-now-expects-hwnd-value.md @@ -26,7 +26,7 @@ cspParameters.ParentWindowHandle = form.Handle; In previous versions of the .NET Framework, the value was expected to be an representing a location in memory where the -[HWND](https://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx#HWND) value resided. +[HWND](https://msdn.microsoft.com/library/windows/desktop/aa383751.aspx#HWND) value resided. Setting the property to form.Handle on Windows 7 and earlier versions had no effect, but on Windows 8 and later versions, it results in a ": The parameter is incorrect." diff --git a/Documentation/compatibility/currentculture-flows-across-tasks.md b/Documentation/compatibility/currentculture-flows-across-tasks.md index 329f2b46c..99498555a 100644 --- a/Documentation/compatibility/currentculture-flows-across-tasks.md +++ b/Documentation/compatibility/currentculture-flows-across-tasks.md @@ -44,7 +44,7 @@ AppContext.SetSwitch("Switch.System.Globalization.NoAsyncCurrentCulture", true); ``` This issue has been fixed by WPF in .NET Framework 4.6.2. It has also been fixed -in .NET Frameworks 4.6, 4.6.1 through [KB 3139549](https://support.microsoft.com/en-us/kb/3139549). +in .NET Frameworks 4.6, 4.6.1 through [KB 3139549](https://support.microsoft.com/kb/3139549). Applications targeting .NET 4.6 or later will automatically get the right behavior in WPF applications - /) @@ -59,6 +59,6 @@ would be preserved across Dispatcher operations. ### Category Core -[More information](https://docs.microsoft.com/en-us/dotnet/api/system.globalization.cultureinfo#Async) +[More information](https://docs.microsoft.com/dotnet/api/system.globalization.cultureinfo#Async) diff --git a/Documentation/compatibility/currentculture-not-preserved-across-wpf-dispatcher-operations.md b/Documentation/compatibility/currentculture-not-preserved-across-wpf-dispatcher-operations.md index da136b19f..30fb36682 100644 --- a/Documentation/compatibility/currentculture-not-preserved-across-wpf-dispatcher-operations.md +++ b/Documentation/compatibility/currentculture-not-preserved-across-wpf-dispatcher-operations.md @@ -67,7 +67,7 @@ setting the following compatibility switch: ``` This issue has been fixed by WPF in .NET Framework 4.6.2. It has also been fixed -in .NET Frameworks 4.6, 4.6.1 through [KB 3139549](https://support.microsoft.com/en-us/kb/3139549). +in .NET Frameworks 4.6, 4.6.1 through [KB 3139549](https://support.microsoft.com/kb/3139549). Applications targeting .NET 4.6 or later will automatically get the right behavior in WPF applications - /) diff --git a/Documentation/compatibility/data-written-to-printsystemjobinfo-jobstream-must-be-in-xps-format.md b/Documentation/compatibility/data-written-to-printsystemjobinfo-jobstream-must-be-in-xps-format.md index 1b23b4d05..8d2f99528 100644 --- a/Documentation/compatibility/data-written-to-printsystemjobinfo-jobstream-must-be-in-xps-format.md +++ b/Documentation/compatibility/data-written-to-printsystemjobinfo-jobstream-must-be-in-xps-format.md @@ -10,7 +10,7 @@ Minor NotPlanned ### Change Description -The `P:System.Printing.PrintSystemJobInfo.JobStream` property exposes the stream of a print job. The user can send raw data to the underlying operating system printing components by writing to this stream. +The property exposes the stream of a print job. The user can send raw data to the underlying operating system printing components by writing to this stream. Starting with the .NET Framework 4.5 on Windows 8 and later versions of the Windows operating system, data written to this stream must be in XPS format as a package stream. @@ -21,9 +21,9 @@ Starting with the .NET Framework 4.5 on Windows 8 and later versions of the Wind To output print content, you can do either of the following: -- Use the `T:System.Windows.Xps.XpsDocumentWriter` class to output print content. This is the recommended alternative. +- Use the class to output print content. This is the recommended alternative. -- Ensure that the data sent to the stream returned by the `P:System.Printing.PrintSystemJobInfo.JobStream` property is in XPS format as a package stream. +- Ensure that the data sent to the stream returned by the property is in XPS format as a package stream. ### Affected APIs * `P:System.Printing.PrintSystemJobInfo.JobStream` diff --git a/Documentation/compatibility/deserialization-of-objects-across-appdomains-can-fail.md b/Documentation/compatibility/deserialization-of-objects-across-appdomains-can-fail.md index 6ca5ff3fc..770f48d77 100644 --- a/Documentation/compatibility/deserialization-of-objects-across-appdomains-can-fail.md +++ b/Documentation/compatibility/deserialization-of-objects-across-appdomains-can-fail.md @@ -16,7 +16,7 @@ In some cases, when an app uses two or more app domains with different applicati - [ ] Build-time break ### Recommended Action -See [Mitigation: Deserialization of Objects Across App Domains](https://docs.microsoft.com/en-us/dotnet/articles/framework/migration-guide/mitigation-deserialization-of-objects-across-app-domains) +See [Mitigation: Deserialization of Objects Across App Domains](~/docs/framework/migration-guide/mitigation-deserialization-of-objects-across-app-domains.md) ### Affected APIs * Not detectable via API analysis diff --git a/Documentation/compatibility/etw-event-names-cannot-differ-only-by-suffix.md b/Documentation/compatibility/etw-event-names-cannot-differ-only-by-suffix.md index 69a725b98..95e560f80 100644 --- a/Documentation/compatibility/etw-event-names-cannot-differ-only-by-suffix.md +++ b/Documentation/compatibility/etw-event-names-cannot-differ-only-by-suffix.md @@ -16,8 +16,8 @@ NotPlanned ### Change Description In the .NET Framework 4.6 and 4.6.1, the runtime throws an when two Event Tracing for Windows (ETW) event names differ only by a "Start" or "Stop" suffix (as when one event is named `LogUser` and another is named `LogUserStart`). In this case, the runtime cannot construct the event source, which cannot emit any logging. -- [X] Quirked // Uses some mechanism to turn the feature on or off, usually using runtime targeting, AppContext or config files. Needs to be turned on automatically for some situations. -- [ ] Build-time break // Causes a break if attempted to recompile +- [X] Quirked +- [ ] Build-time break ### Recommended Action diff --git a/Documentation/compatibility/exceptions-during-unobserved-processing-in-system_threading_tasks_task-no-longer-propagate-on-finalizer-thread.md b/Documentation/compatibility/exceptions-during-unobserved-processing-in-system_threading_tasks_task-no-longer-propagate-on-finalizer-thread.md index 54b0c6758..918b4fa17 100644 --- a/Documentation/compatibility/exceptions-during-unobserved-processing-in-system_threading_tasks_task-no-longer-propagate-on-finalizer-thread.md +++ b/Documentation/compatibility/exceptions-during-unobserved-processing-in-system_threading_tasks_task-no-longer-propagate-on-finalizer-thread.md @@ -29,7 +29,7 @@ finalizer thread, the previous behavior can be restored by providing an appropriate handler for the event, or by setting a -[runtime configuration element](https://docs.microsoft.com/en-us/dotnet/articles/framework/configure-apps/file-schema/runtime/throwunobservedtaskexceptions-element). +[runtime configuration element](~/docs/framework/configure-apps/file-schema/runtime/throwunobservedtaskexceptions-element.md). ### Affected APIs * `M:System.Threading.Tasks.Task.Run(System.Action)` diff --git a/Documentation/compatibility/glyphrun_computeinkboundingbox()-and-formattedtext_extent-return-different-values-beginning-in-_net-4_5.md b/Documentation/compatibility/glyphrun_computeinkboundingbox()-and-formattedtext_extent-return-different-values-beginning-in-_net-4_5.md index acc51e8d7..39f391395 100644 --- a/Documentation/compatibility/glyphrun_computeinkboundingbox()-and-formattedtext_extent-return-different-values-beginning-in-_net-4_5.md +++ b/Documentation/compatibility/glyphrun_computeinkboundingbox()-and-formattedtext_extent-return-different-values-beginning-in-_net-4_5.md @@ -43,6 +43,6 @@ the app.config file: ### Category Windows Presentation Foundation (WPF) -[More information](http://support.microsoft.com/en-us/kb/3009678) +[More information](http://support.microsoft.com/kb/3009678) diff --git a/Documentation/compatibility/horizontal-scrolling-and-virtualization.md b/Documentation/compatibility/horizontal-scrolling-and-virtualization.md index 7016c20bb..4d4c949a2 100644 --- a/Documentation/compatibility/horizontal-scrolling-and-virtualization.md +++ b/Documentation/compatibility/horizontal-scrolling-and-virtualization.md @@ -51,8 +51,8 @@ after a horizontal scroll, whether invoked by the end user or by an explicit call to . -- [ ] Quirked // Uses some mechanism to turn the feature on or off, usually using runtime targeting, AppContext or config files. Needs to be turned on automatically for some situations. -- [ ] Build-time break // Causes a break if attempted to recompile +- [ ] Quirked +- [ ] Build-time break ### Recommended Action diff --git a/Documentation/compatibility/httprequest_contentencoding-property-prohibits-utf7.md b/Documentation/compatibility/httprequest_contentencoding-property-prohibits-utf7.md index 803711149..254c93763 100644 --- a/Documentation/compatibility/httprequest_contentencoding-property-prohibits-utf7.md +++ b/Documentation/compatibility/httprequest_contentencoding-property-prohibits-utf7.md @@ -25,7 +25,7 @@ Ideally, applications should be updated to not use UTF-7 encoding in s. Alternatively, legacy behavior can be restored by using the `aspnet:AllowUtf7RequestContentEncoding` attribute of the -[appSettings](https://msdn.microsoft.com/en-us/library/hh975440(v=vs.110).aspx) +[appSettings](https://msdn.microsoft.com/library/hh975440(v=vs.110).aspx) element. ### Affected APIs diff --git a/Documentation/compatibility/httputility_javascriptstringencode-escapes-ampersand.md b/Documentation/compatibility/httputility_javascriptstringencode-escapes-ampersand.md index 789a87fa1..b851ba4da 100644 --- a/Documentation/compatibility/httputility_javascriptstringencode-escapes-ampersand.md +++ b/Documentation/compatibility/httputility_javascriptstringencode-escapes-ampersand.md @@ -21,7 +21,7 @@ escapes the ampersand (&) character. If your app depends on the previous behavior of this method, you can add an aspnet:JavaScriptDoNotEncodeAmpersand setting to the -[ASP.NET appSettings element](https://msdn.microsoft.com/en-us/library/hh975440(v=vs.110).aspx) +[ASP.NET appSettings element](https://msdn.microsoft.com/library/hh975440.aspx) in your configuration file. ### Affected APIs diff --git a/Documentation/compatibility/listboxitem-isselected-binding-issue-with-observablecollection_move.md b/Documentation/compatibility/listboxitem-isselected-binding-issue-with-observablecollection_move.md index 25321ae61..ebbe37bbb 100644 --- a/Documentation/compatibility/listboxitem-isselected-binding-issue-with-observablecollection_move.md +++ b/Documentation/compatibility/listboxitem-isselected-binding-issue-with-observablecollection_move.md @@ -43,6 +43,6 @@ Framework. ### Category Windows Presentation Foundation (WPF) -[More information](http://social.msdn.microsoft.com/Forums/en-US/afcbc8b3-a2f2-41e4-b402-2efc9eab1ffe/listboxitem-isselected-binding-issue-with-observablecollectiontmove?forum=wpf) +[More information](http://social.msdn.microsoft.com/Forums/afcbc8b3-a2f2-41e4-b402-2efc9eab1ffe/listboxitem-isselected-binding-issue-with-observablecollectiontmove?forum=wpf) diff --git a/Documentation/compatibility/long-path-support.md b/Documentation/compatibility/long-path-support.md index b0fc3f119..6afeb6ea3 100644 --- a/Documentation/compatibility/long-path-support.md +++ b/Documentation/compatibility/long-path-support.md @@ -35,7 +35,7 @@ exceeds 260 characters. ### Recommended Action For apps that target the .NET Framework 4.6.2, you can opt out of long path -support if it is not desirable by adding the following to to the `` +support if it is not desirable by adding the following to the `` section of your `app.config` file: ```xml @@ -46,7 +46,7 @@ section of your `app.config` file: For apps that target earlier versions of the .NET Framework but run on the .NET Framework 4.6.2 or later, you can opt in to long path support by adding the -following to to the `` section of your `app.config` file: +following to the `` section of your `app.config` file: ```xml diff --git a/Documentation/compatibility/marshal_sizeof-and-marshal_ptrtostructure-overloads-break-dynamic-code.md b/Documentation/compatibility/marshal_sizeof-and-marshal_ptrtostructure-overloads-break-dynamic-code.md index 797260b3f..724684164 100644 --- a/Documentation/compatibility/marshal_sizeof-and-marshal_ptrtostructure-overloads-break-dynamic-code.md +++ b/Documentation/compatibility/marshal_sizeof-and-marshal_ptrtostructure-overloads-break-dynamic-code.md @@ -29,7 +29,7 @@ have been added that may be ambiguous to the scripting engines. Update scripts to clearly indicate which overload should be used. This can typically done by explicitly casting the methods' type parameters as -. See [this link](https://support.microsoft.com/en-us/kb/2909958/) +. See [this link](https://support.microsoft.com/kb/2909958/) for more detail and examples of how to workaround the issue. ### Affected APIs @@ -38,7 +38,7 @@ for more detail and examples of how to workaround the issue. ### Category Core -[More information](https://support.microsoft.com/en-us/kb/2909958/) +[More information](https://support.microsoft.com/kb/2909958/) diff --git a/Documentation/compatibility/serialization-deserialization-of-mailmessage-objects.md b/Documentation/compatibility/serialization-deserialization-of-mailmessage-objects.md index 0063a167b..7019da700 100644 --- a/Documentation/compatibility/serialization-deserialization-of-mailmessage-objects.md +++ b/Documentation/compatibility/serialization-deserialization-of-mailmessage-objects.md @@ -10,17 +10,17 @@ Minor Investigating ### Change Description -Starting with the .NET Framework 4.5, `T:System.Web.Mail.MailMessage` objects can include non-ASCII characters. In the .NET Framework 4, only ASCII characters are supported. `T:System.Web.Mail.MailMessage` objects that contain non-ASCII characters and that are serialized under the .NET Framework 4.5 or later cannot be deserialized under the .NET Framework 4. +Starting with the .NET Framework 4.5, objects can include non-ASCII characters. In the .NET Framework 4, only ASCII characters are supported. objects that contain non-ASCII characters and that are serialized under the .NET Framework 4.5 or later cannot be deserialized under the .NET Framework 4. - [ ] Quirked - [ ] Build-time break ### Recommended Action -Ensure that your code provides exception handling when deserializing a `T:System.Web.Mail.MailMessage` object. +Ensure that your code provides exception handling when deserializing a object. ### Affected APIs -`T:System.Web.Mail.MailMessage` + ### Category Networking diff --git a/Documentation/compatibility/serialization-of-control-characters-with-datacontractjsonserializer-is-now-compatible-with-ecmascript-v6-and-v8.md b/Documentation/compatibility/serialization-of-control-characters-with-datacontractjsonserializer-is-now-compatible-with-ecmascript-v6-and-v8.md index 2f54a0c05..95ad659b9 100644 --- a/Documentation/compatibility/serialization-of-control-characters-with-datacontractjsonserializer-is-now-compatible-with-ecmascript-v6-and-v8.md +++ b/Documentation/compatibility/serialization-of-control-characters-with-datacontractjsonserializer-is-now-compatible-with-ecmascript-v6-and-v8.md @@ -39,6 +39,6 @@ following line to the `` section of the app.config or web.config file: * `M:System.Runtime.Serialization.Json.DataContractJsonSerializer.WriteObject(System.Xml.XmlWriter,System.Object)` ### Category -* Windows Communication Foundation (WCF) +Windows Communication Foundation (WCF) diff --git a/Documentation/compatibility/servicepointmanager.securityprotocol-defaults-to-securityprotocoltype.systemdefault.md b/Documentation/compatibility/servicepointmanager.securityprotocol-defaults-to-securityprotocoltype.systemdefault.md index bd5b72308..a9db5f2fe 100644 --- a/Documentation/compatibility/servicepointmanager.securityprotocol-defaults-to-securityprotocoltype.systemdefault.md +++ b/Documentation/compatibility/servicepointmanager.securityprotocol-defaults-to-securityprotocoltype.systemdefault.md @@ -12,15 +12,23 @@ NotPlanned ### Change Description Starting with apps that target the .NET Framework 4.7, the default value of the property is . This change allows .NET Framework networking APIs based on SslStream (such as FTP, HTTPS, and SMTP) to inherit the default security protocols from the operating system instead of using hard-coded values defined by the .NET Framework. The default varies by operating system and any custom configuration performed by the system administrator. For information on the default SChannel protocol in each version of the Windows operating system, see [Protocols in TLS/SSL (Schannel SSP)](https://msdn.microsoft.com/library/windows/desktop/mt808159.aspx). -For applications that target an earlier version of the .NET Framework, the default value of the property depends on the version of the .NET Framework targeted. See [Retargeting Changes in the .NET Framework 4.6](docs.microsoft.com/dotnet/framework/migration-guide/retargeting) for more information. +For applications that target an earlier version of the .NET Framework, the default value of the property depends on the version of the .NET Framework targeted. See the [Networking section of Retargeting Changes for Migration from .NET Framework 4.5.2 to 4.6](~/docs/framework/migration-guide/retargeting/4.5.2-4.6.md#Networking) for more information. -- [X] Quirked +- [X] Quirked - [ ] Build-time break ### Recommended Action -This change affects applications that target the .NET Framework 4.7 or later versions. +This change affects applications that target the .NET Framework 4.7 or later versions. -If you prefer to use a defined protocol rather than relying on the system default, you can explicitly set the value of the property. +If you prefer to use a defined protocol rather than relying on the system default, you can explicitly set the value of the property. + +If this change is undesirable, you can opt out of it by adding a configuration setting to the [``](https://docs.microsoft.com/dotnet/framework/configure-apps/file-schema/runtime/runtime-element) section of your application configuration file. The following example shows both the `` section and the `Switch.System.Net.DontEnableSystemDefaultTlsVersions` opt-out switch: + +```xml + + + +``` ### Affected APIs - `P:System.Net.ServicePointManager.SecurityProtocol` diff --git a/Documentation/compatibility/sharing-session-state-with-asp_net-stateserver-requires-all-servers-in-the-web-farm-to-use-the-same-_net-framework-version.md b/Documentation/compatibility/sharing-session-state-with-asp_net-stateserver-requires-all-servers-in-the-web-farm-to-use-the-same-_net-framework-version.md index 4b871f20f..460ffb3c3 100644 --- a/Documentation/compatibility/sharing-session-state-with-asp_net-stateserver-requires-all-servers-in-the-web-farm-to-use-the-same-_net-framework-version.md +++ b/Documentation/compatibility/sharing-session-state-with-asp_net-stateserver-requires-all-servers-in-the-web-farm-to-use-the-same-_net-framework-version.md @@ -34,7 +34,7 @@ ASP.NET diff --git a/Documentation/compatibility/sql-server-database-connection-that-resolves-to-localhost.md b/Documentation/compatibility/sql-server-database-connection-that-resolves-to-localhost.md index ad3c7951f..cccb03cf0 100644 --- a/Documentation/compatibility/sql-server-database-connection-that-resolves-to-localhost.md +++ b/Documentation/compatibility/sql-server-database-connection-that-resolves-to-localhost.md @@ -16,8 +16,8 @@ NotPlanned In the .NET Framework 4.6 and 4.6.1, attempting a TCP/IP connection to a SQL Server database that resolves to `localhost` fails with the error, "A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)" -- [ ] Quirked // Uses some mechanism to turn the feature on or off, usually using runtime targeting, AppContext or config files. Needs to be turned on automatically for some situations. -- [ ] Build-time break // Causes a break if attempted to recompile +- [ ] Quirked +- [ ] Build-time break ### Recommended Action diff --git a/Documentation/compatibility/sqlconnection-can-no-longer-connect-to-sql-server-1997-or-databases-using-the-via-adapter.md b/Documentation/compatibility/sqlconnection-can-no-longer-connect-to-sql-server-1997-or-databases-using-the-via-adapter.md index e53181db2..1c803fefe 100644 --- a/Documentation/compatibility/sqlconnection-can-no-longer-connect-to-sql-server-1997-or-databases-using-the-via-adapter.md +++ b/Documentation/compatibility/sqlconnection-can-no-longer-connect-to-sql-server-1997-or-databases-using-the-via-adapter.md @@ -10,7 +10,7 @@ Edge Planned ### Change Description -Connections to SQL Server databases using the [Virtual Interface Adapter (VIA) protocol](https://technet.microsoft.com/en-us/library/ms191229%28v=sql.105%29.aspx) are no longer supported. +Connections to SQL Server databases using the [Virtual Interface Adapter (VIA) protocol](https://technet.microsoft.com/library/ms191229%28v=sql.105%29.aspx) are no longer supported. The protocol used to connect to a SQL Server database is visible in the connection string. A VIA connection will contain via:\. If this app is connecting to SQL via a protocol other than VIA (tcp: or np: for example), then no breaking change will be encountered. @@ -20,7 +20,7 @@ Also, connections to SQL Server 7 (1997) are no longer supported. - [ ] Build-time break ### Recommended Action -The VIA protocol is deprecated, so an alternative protocol should be used to connect to SQL databases. The most common protocol used is TCP/IP. Instructions for enabling the TCP/IP protocol can be found [here](https://msdn.microsoft.com/en-us/library/bb909712(v=vs.120).aspx). If the database is only accessed from within an intranet, the shared pipes protocol may provide better performance if the network is slow. +The VIA protocol is deprecated, so an alternative protocol should be used to connect to SQL databases. The most common protocol used is TCP/IP. Instructions for enabling the TCP/IP protocol can be found [here](https://msdn.microsoft.com/library/bb909712.aspx). If the database is only accessed from within an intranet, the shared pipes protocol may provide better performance if the network is slow. ### Affected APIs * `M:System.Data.SqlClient.SqlConnection.#ctor(System.String)` diff --git a/Documentation/compatibility/sslstream-support-for-tls-alerts.md b/Documentation/compatibility/sslstream-support-for-tls-alerts.md index b311132ec..d6be2a543 100644 --- a/Documentation/compatibility/sslstream-support-for-tls-alerts.md +++ b/Documentation/compatibility/sslstream-support-for-tls-alerts.md @@ -18,7 +18,7 @@ be thrown by the first I/O Read/Write operation. The code for the can be mapped to the TLS Alert from the remote party using this -[Schannel documentation](https://msdn.microsoft.com/en-us/library/windows/desktop/dd721886%28v=vs.85%29.aspx). +[Schannel documentation](https://msdn.microsoft.com/library/windows/desktop/dd721886%28v=vs.85%29.aspx). For more information, see [RFC 2246: Section 7.2.2 Error alerts](https://tools.ietf.org/html/rfc2246#section-7.2.2) diff --git a/Documentation/compatibility/the-_net-framework-4_6-does-not-use-a-4_5_x_x-version-when-registering-itself-in-the-registry.md b/Documentation/compatibility/the-_net-framework-4_6-does-not-use-a-4_5_x_x-version-when-registering-itself-in-the-registry.md index 6fec39a19..d63f0871f 100644 --- a/Documentation/compatibility/the-_net-framework-4_6-does-not-use-a-4_5_x_x-version-when-registering-itself-in-the-registry.md +++ b/Documentation/compatibility/the-_net-framework-4_6-does-not-use-a-4_5_x_x-version-when-registering-itself-in-the-registry.md @@ -24,6 +24,6 @@ Update apps probing for a .NET Framework 4.5 install by looking for 4.5 registry ### Category Setup and Deployment -[More information](https://docs.microsoft.com/en-us/dotnet/articles/framework/migration-guide/mitigation-product-versioning) +[More information](~/docs/framework/migration-guide/mitigation-product-versioning.md) diff --git a/Documentation/compatibility/throttle-concurrent-requests-per-session.md b/Documentation/compatibility/throttle-concurrent-requests-per-session.md index 66078ce39..2fbf1eec2 100644 --- a/Documentation/compatibility/throttle-concurrent-requests-per-session.md +++ b/Documentation/compatibility/throttle-concurrent-requests-per-session.md @@ -10,7 +10,7 @@ Edge NotPlanned ### Change Description -In the .NET Framework 4.6.2 and earlier, ASP.NET executes requests with the same Sessionid sequentially, and ASP.NET always issues the Sessionid through cookie by default. If a page takes a long time to respond, it will significantly degrade server performance just by pressing F5 on the browser. In the fix, we added a counter to track the queued requests and terminate the requests when they exceed a specified limit. The default value is 50. If the the limit is reached, a warning will be logged in the event log, and an HTTP 500 response may be recorded in the IIS log. +In the .NET Framework 4.6.2 and earlier, ASP.NET executes requests with the same Sessionid sequentially, and ASP.NET always issues the Sessionid through cookies by default. If a page takes a long time to respond, it will significantly degrade server performance just by pressing F5 on the browser. In the fix, we added a counter to track the queued requests and terminate the requests when they exceed a specified limit. The default value is 50. If the limit is reached, a warning will be logged in the event log, and an HTTP 500 response may be recorded in the IIS log. - [x] Quirked - [ ] Build-time break diff --git a/Documentation/compatibility/tls-1-x-by-default-passes-sch-send-aux-record-flag-to-the-underlying-schannel-api.md b/Documentation/compatibility/tls-1-x-by-default-passes-sch-send-aux-record-flag-to-the-underlying-schannel-api.md new file mode 100644 index 000000000..08eeb1b3c --- /dev/null +++ b/Documentation/compatibility/tls-1-x-by-default-passes-sch-send-aux-record-flag-to-the-underlying-schannel-api.md @@ -0,0 +1,48 @@ +## TLS 1.x by default passes the SCH_SEND_AUX_RECORD flag to the underlying SCHANNEL API + +### Scope +Edge + +### Version Introduced +4.6 + +### Source Analyzer Status +NotPlanned + +### Change Description + +When using TLS 1.x, the .NET Framework relies on the underlying Windows SCHANNEL API. Starting with .NET Framework 4.6, the [`SCH_SEND_AUX_RECORD`](https://msdn.microsoft.com/library/windows/desktop/aa379810.aspx) flag is passed by default to SCHANNEL. This causes SCHANNEL to split data to be encrypted into two separate records, the first as a single byte and the second as *n*-1 bytes. + +In rare cases, this breaks communication between clients and existing servers that make the assumption that the data resides in a single record. + +- [X] Quirked +- [ ] Build-time break + +### Recommended Action + +If this change breaks communication with an existing server, you can disable sending the [`SCH_SEND_AUX_RECORD`](https://msdn.microsoft.com/library/windows/desktop/aa379810.aspx) flag and restore the previous behavior of not splitting data into separate records by adding the following switch to the [`\` element](~/docs/framework/configure-apps/file-schema/runtime/appcontextswitchoverrides-element.md) in the [`\ section](~/docs/framework/configure-apps/file-schema/runtime/runtime-element.md) of your app configuration file: + +```xml + + + +``` +> [!IMPORTANT] +> This setting is provided for backward compatibility only. Its use is otherwise not recommended. + +### Affected APIs +* `T:System.Net.Security.SslStream` +* `T:System.Net.ServicePointManager` +* `T:System.Net.Http.HttpClient` +* `T:System.Net.Mail.SmtpClient` +* `T:System.Net.HttpWebRequest` +* `T:System.Net.FtpWebRequest` + +### Category +Networking + + + diff --git a/Documentation/compatibility/wcf-message-security-unable-to-use-tls1_1-and-tls1_2.md b/Documentation/compatibility/wcf-message-security-unable-to-use-tls1_1-and-tls1_2.md index 94ee93f8a..ed0368215 100644 --- a/Documentation/compatibility/wcf-message-security-unable-to-use-tls1_1-and-tls1_2.md +++ b/Documentation/compatibility/wcf-message-security-unable-to-use-tls1_1-and-tls1_2.md @@ -25,6 +25,6 @@ In the .NET Framework 4.7, support for TLS1.1 and TLS1.2 in WCF message security ``` ### Category -* Windows Communication Foundation (WCF) +Windows Communication Foundation (WCF) diff --git a/Documentation/compatibility/wcf-services-using-nettcp-with-ssl-security-and-md5-certificate-authentication.md b/Documentation/compatibility/wcf-services-using-nettcp-with-ssl-security-and-md5-certificate-authentication.md index 35924850d..70a9ebd95 100644 --- a/Documentation/compatibility/wcf-services-using-nettcp-with-ssl-security-and-md5-certificate-authentication.md +++ b/Documentation/compatibility/wcf-services-using-nettcp-with-ssl-security-and-md5-certificate-authentication.md @@ -1,7 +1,7 @@ -## WCF services that use NETTCP with SSL sercurity and MD5 certificate authentication +## WCF services that use NETTCP with SSL security and MD5 certificate authentication ### Scope -Minor| +Minor ### Version Introduced 4.6 @@ -14,8 +14,8 @@ The .NET Framework 4.6 adds TLS 1.1 and TLS 1.2 to the WCF SSL default protocol TLS 1.2 does not support MD5 certificate authentication. As a result, if a customer uses an MD5 certificate, the WCF client will fail to connect to the WCF service. -- [ ] Quirked // Uses some mechanism to turn the feature on or off, usually using runtime targeting, AppContext or config files. Needs to be turned on automatically for some situations. -- [ ] Build-time break // Causes a break if attempted to recompile +- [ ] Quirked +- [ ] Build-time break ### Recommended Action You can work around this issue so that a WCF client can connect to a WCF server by doing any of the following: diff --git a/Documentation/compatibility/webutility_htmldecode-no-longer-decodes-invalid-input-sequences.md b/Documentation/compatibility/webutility_htmldecode-no-longer-decodes-invalid-input-sequences.md index 7ee29d7be..94b0d9448 100644 --- a/Documentation/compatibility/webutility_htmldecode-no-longer-decodes-invalid-input-sequences.md +++ b/Documentation/compatibility/webutility_htmldecode-no-longer-decodes-invalid-input-sequences.md @@ -16,7 +16,7 @@ By default, decoding methods no longer decode an invalid input sequence into an - [ ] Build-time break ### Recommended Action -The change in decoder output should matter only if you store binary data instead of UTF-16 data in strings. To explicitly control this behavior, set the `aspnet:AllowRelaxedUnicodeDecoding` attribute of the [appSettings](https://msdn.microsoft.com/en-us/library/ms228154(v=vs.110).aspx) element to true to enable legacy behavior or to false to enable the current behavior. +The change in decoder output should matter only if you store binary data instead of UTF-16 data in strings. To explicitly control this behavior, set the `aspnet:AllowRelaxedUnicodeDecoding` attribute of the [appSettings](~/docs/framework/configure-apps/file-schema/appsettings/index.md) element to `true` to enable legacy behavior or to `false` to enable the current behavior. ### Affected APIs * `M:System.Net.WebUtility.HtmlDecode(System.String)` diff --git a/Documentation/compatibility/windows-forms-icon-tobitmap-method-successfully-converts-icons-with-png-frames.md b/Documentation/compatibility/windows-forms-icon-tobitmap-method-successfully-converts-icons-with-png-frames.md index f0d7ebea4..9aacf9663 100644 --- a/Documentation/compatibility/windows-forms-icon-tobitmap-method-successfully-converts-icons-with-png-frames.md +++ b/Documentation/compatibility/windows-forms-icon-tobitmap-method-successfully-converts-icons-with-png-frames.md @@ -17,8 +17,8 @@ In apps that target the .NET Framework 4.5.2 and earlier versions, the that is thrown when an Icon object has PNG frames. When running under the .NET Framework 4.6, the conversion is successful, an is no longer thrown, and therefore the exception handler is no longer invoked. -- [X] Quirked // Uses some mechanism to turn the feature on or off, usually using runtime targeting, AppContext or config files. Needs to be turned on automatically for some situations. -- [ ] Build-time break // Causes a break if attempted to recompile +- [X] Quirked +- [ ] Build-time break ### Recommended Action If this behavior is undesirable, you can retain the previous behavior by adding the following element to the `` section of your app.config file: diff --git a/Documentation/compatibility/winforms-accessibility-changes-471.md b/Documentation/compatibility/winforms-accessibility-changes-471.md index 770852aac..5d4226aa7 100644 --- a/Documentation/compatibility/winforms-accessibility-changes-471.md +++ b/Documentation/compatibility/winforms-accessibility-changes-471.md @@ -1,4 +1,4 @@ -## Accessibility improvements in Windows Forms controls +## Accessibility improvements in Windows Forms controls ### Scope Major @@ -51,7 +51,7 @@ For an overview of UI automation, see the [UI Automation Overview](https://docs. **Added support for UI Automation patterns and properties** -Accessibility clients can take advantage of new WinForms accessibility functionality by using common, publicly described invocation patterns. These patterns are not WinForms-specific. For instance, accessibility clients can call the QueryInterface method on the IAccessible interface (MAAS) to obtain an IServiceProvider interface. If this interface is available, clients can use its QueryService method to request an IAccessibleEx interface. For more information, see [Using IAccessibleEx from a Client](https://msdn.microsoft.com/en-us/library/windows/desktop/dd561924(v=vs.85).aspx). Starting with the .NET Framework 4.7.1, IServiceProvider and [IAccessibleEx]( https://msdn.microsoft.com/en-us/library/windows/desktop/dd561898(v=vs.85).aspx) (where applicable) are available for WinForms accessibility objects. +Accessibility clients can take advantage of new WinForms accessibility functionality by using common, publicly described invocation patterns. These patterns are not WinForms-specific. For instance, accessibility clients can call the QueryInterface method on the IAccessible interface (MAAS) to obtain an IServiceProvider interface. If this interface is available, clients can use its QueryService method to request an IAccessibleEx interface. For more information, see [Using IAccessibleEx from a Client](https://msdn.microsoft.com/library/windows/desktop/dd561924.aspx). Starting with the .NET Framework 4.7.1, IServiceProvider and [IAccessibleEx]( https://msdn.microsoft.com/library/windows/desktop/dd561898.aspx) (where applicable) are available for WinForms accessibility objects. The .NET Framework 4.7.1 adds support for the following UI automation patterns and properties: @@ -102,14 +102,14 @@ NOTE: Windows10 has changed values for some high contrast system colors. Windows - The `T:System.Windows.Forms.CheckedListBox` control now notifies Narrator when the `P:System.Windows.Forms.CheckState` property has been changed. Previously, Narrator did not recieve notification and as a result users would not be informed that the `P:System.Windows.Forms.CheckState` had been updated. - The `T:System.Windows.Forms.LinkLabel` control has changed the way it notifies Narrator of the text of in the control. Previously, Narrator announced this text twice and read "&" symbols as real text even though they are not visible to a user. The duplicated text was removed from the Narrator announcements, as well as unnecessary "&" symbols. - The `T:System.Windows.Forms.DataGridViewCell` control types now correctly report the read-only status to Narrator and other assistive technologies. -- Narrator is now able to read the System Menu of child windows in [Multiple-Document Interface](https://docs.microsoft.com/en-us/dotnet/framework/winforms/advanced/multiple-document-interface-mdi-applications) applications. +- Narrator is now able to read the System Menu of child windows in [Multiple-Document Interface]~/docs/framework/winforms/advanced/multiple-document-interface-mdi-applications.md) applications. - Narrator is now able to read `T:System.Windows.Forms.ToolStripMenuItem` controls with a `P:System.Windows.Forms.ToolStripItem.Enabled` property set to _false_. Previously, Narrator was unable to focus on disabled menu items to read hte content. -### Affected APIs not detectable via API analysis +### Affected APIs * `M:System.Windows.Forms.ToolStripDropDownButton.CreateAccessibilityInstance` * `P:System.Windows.Forms.DomainUpDown.DomainUpDownAccessibleObject.Name` -* `T:Sysetm.Windows.Forms.MonthCalendar.MonthCalendarAccessibleObject` +* [MonthCalendar.AccessibilityObject](xref:System.Windows.Forms.Control.AccessibilityObject) ### Category diff --git a/Documentation/compatibility/workflow-3_0-types-are-obsolete.md b/Documentation/compatibility/workflow-3_0-types-are-obsolete.md index c6914f223..cc73fd6d1 100644 --- a/Documentation/compatibility/workflow-3_0-types-are-obsolete.md +++ b/Documentation/compatibility/workflow-3_0-types-are-obsolete.md @@ -16,7 +16,7 @@ Windows Workflow Foundation (WWF) 3.0 APIs (those from the System.Workflow names - [x] Build-time break ### Recommended Action -New WWF 4.0 APIs (in System.Activities) should be used instead. An example of using the new APIs can be found [here](../../../../framework/windows-workflow-foundation/how-to-update-the-definition-of-a-running-workflow-instance.md) and further guidance is available [here](http://blogs.msdn.com/b/workflowteam/archive/2012/02/08/deprecatingwf3.aspx). Alternatively, since the WWF 3.0 APIs are still supported, they may be used and the build-time warning avoided either by suppressing it or by using an older compiler. +New WWF 4.0 APIs (in System.Activities) should be used instead. An example of using the new APIs can be found [here](~/docs/framework/windows-workflow-foundation/how-to-update-the-definition-of-a-running-workflow-instance.md) and further guidance is available [here](http://blogs.msdn.com/b/workflowteam/archive/2012/02/08/deprecatingwf3.aspx). Alternatively, since the WWF 3.0 APIs are still supported, they may be used and the build-time warning avoided either by suppressing it or by using an older compiler. ### Affected APIs * Not detectable via API analysis diff --git a/Documentation/compatibility/workflow-designer-accessibility.md b/Documentation/compatibility/workflow-designer-accessibility.md index f47ee8964..3bcc19a13 100644 --- a/Documentation/compatibility/workflow-designer-accessibility.md +++ b/Documentation/compatibility/workflow-designer-accessibility.md @@ -12,8 +12,8 @@ NotPlanned ### Change Description The Windows Workflow Foundation (WF) workflow designer is improving how it works with accessibility technologies. These improvements include the following changes: - The tab order is changed to left to right and top to bottom in some controls: - - The initialize correlation window for setting correlation data for the `T:System.ServiceModel.Activities.InitializeCorrelation` activity - - The content definition window for the `T:System.ServiceModel.Activities.Receive`, `T:System.ServiceModel.Activities.Send`, `T:System.ServiceModel.Activities.SendReply`, and `T:System.ServiceModel.Activities.ReceiveReply` activities + - The initialize correlation window for setting correlation data for the activity + - The content definition window for the , , , and activities - More functions are available via the keyboard: - When editing the properties of an activity, property groups can be collapsed by keyboard the first time they are focused. - Warning icons are now accessible by keyboard. @@ -21,23 +21,23 @@ The Windows Workflow Foundation (WF) workflow designer is improving how it works - Keyboard users now can access the header items in the Arguments and Variables panes of the Workflow Designer. - Improved visibility of items with focus, such as when: - Adding rows to data grids used by the Workflow Designer and activity designers. - - Tabbing through fields in the `T:System.ServiceModel.Activities.ReceiveReply` and `T:System.ServiceModel.Activities.SendReply` activities. + - Tabbing through fields in the and activities. - Setting default values for variables or arguments - Screen readers can now correctly recognize: - Breakpoints set in the workflow designer. - - The `T:System.Activities.Statements.FlowSwitch`, `T:System.Activities.Statements.FlowDecision`, and `T:System.ServiceModel.Activities.CorrelationScope` activities. - - The contents of the `T:System.ServiceModel.Activities.Receive` activity. - - The Target Type for the `T:System.Activities.Statements.InvokeMethod` activity. - - The Exception combobox and the Finally section in the `T:System.Activities.Statements.TryCatch` activity. - - The Message Type combobox, the splitter in the Add Correlation Initializers window, the Content Definition window, and the CorrelatesOn Defintion window in the messaging activities (`T:System.ServiceModel.Activities.Receive`, `T:System.ServiceModel.Activities.Send`, `T:System.ServiceModel.Activities.SendReply`, and `T:System.ServiceModel.Activities.ReceiveReply`). + - The , , and activities. + - The contents of the activity. + - The Target Type for the activity. + - The Exception combobox and the Finally section in the activity. + - The Message Type combobox, the splitter in the Add Correlation Initializers window, the Content Definition window, and the CorrelatesOn Defintion window in the messaging activities (, , , and ). - State machine transitions and transitions destinations. - - Annotations and connectors on `T:System.Activities.Statements.FlowDecision` activities. + - Annotations and connectors on activities. - The context (right-click) menus for activities. - The property value editors, the Clear Search button, the By Category and Alphabetical sort buttons, and the Expression Editor dialog in the properties grid. - The zoom percentage in the Workflow Designer. - - The separator in `T:System.Activities.Statements.Parallel` and `T:System.Activities.Statements.Pick` activities. - - The `T:System.Activities.Statements.InvokeDelegate` activity. - - The Select Types window for dictionary activities (`T:Microsoft.Activities.AddToDictionary`, `T:Microsoft.Activities.RemoveFromDictionary`, etc.). + - The separator in and activities. + - The activity. + - The Select Types window for dictionary activities (`Microsoft.Activities.AddToDictionary`, `Microsoft.Activities.RemoveFromDictionary`, etc.). - The Browse and Select .NET Type window. - Breadcrumbs in the Workflow Designer. - Users who choose High Contrast themes will see many improvements in the visibility of the Workflow Designer and its controls like better contrast ratios between elements and more noticeable selection boxes used for focus elements. diff --git a/Documentation/compatibility/wpf-accessibility-improvements.MD b/Documentation/compatibility/wpf-accessibility-improvements.MD index f52b507b8..42c2a3599 100644 --- a/Documentation/compatibility/wpf-accessibility-improvements.MD +++ b/Documentation/compatibility/wpf-accessibility-improvements.MD @@ -12,29 +12,29 @@ NotPlanned ### Change Description __High Contrast improvements__ -- The focus for the `T:System.Windows.Controls.Expander` control is now visible. In previous versions of the .NET Framework, it was not. -- The text in `T:System.Windows.Controls.CheckBox` and `T:System.Windows.Controls.RadioButton` controls when they are selected is now easier to see than in previous .NET Framework versions. -- The border of a disabled `T:System.Windows.Controls.ComboBox` is now the same color as the disabled text. In previous versions of the .NET Framework, it was not. +- The focus for the control is now visible. In previous versions of the .NET Framework, it was not. +- The text in and controls when they are selected is now easier to see than in previous .NET Framework versions. +- The border of a disabled is now the same color as the disabled text. In previous versions of the .NET Framework, it was not. - Disabled and focused buttons now use the correct theme color. In previous versions of the .NET Framework, they did not. -- The dropdown button is now visible when a `T:System.Windows.Controls.ComboBox` control's style is set to , In previous versions of the .NET Framework, it was not. -- The sort indicator arrow in a `T:System.Windows.Controls.DataGrid` control now uses theme colors. In previous versions of the .NET Framework, it did not. +- The dropdown button is now visible when a control's style is set to , In previous versions of the .NET Framework, it was not. +- The sort indicator arrow in a control now uses theme colors. In previous versions of the .NET Framework, it did not. - The default hyperlink style now changes to the correct theme color on mouse over. In previous versions of the .NET Framework, it did not. - The Keyboard focus on radio buttons is now visible. In previous versions of the .NET Framework, it was not. -- The `T:System.Windows.Controls.DataGrid` control's checkbox column now uses the expected colors for keyboard focus feedback. In previous versions of the .NET Framework, it did not. -- the Keyboard focus visuals are now visible on `T:System.Windows.Controls.ComboBox` and `T:System.Windows.Controls.ListBox`. In previous versions of the .NET Framework, it was not. +- The control's checkbox column now uses the expected colors for keyboard focus feedback. In previous versions of the .NET Framework, it did not. +- the Keyboard focus visuals are now visible on and . In previous versions of the .NET Framework, it was not. __Screen reader interaction improvements__ -- `T:System.Windows.Controls.Expander` controls are now correctly announced as groups (expand/collapse) by screen readers. -- `T:System.Windows.Controls.DataGridCell` controls are now correctly announced as data grid cell (localized) by screen readers. -- Screen readers will now announce the name of an editable `T:System.Windows.Controls.ComboBox`. -- `T:System.Windows.Controls.PasswordBox` controls are no longer announced as “no item in view” by screen readers. +- controls are now correctly announced as groups (expand/collapse) by screen readers. +- controls are now correctly announced as data grid cell (localized) by screen readers. +- Screen readers will now announce the name of an editable . +- controls are no longer announced as "no item in view" by screen readers. -__LiveRegion support__ +__LiveRegion support__ -Screen readers such as Narrator help people know the UI contents of an application, usually by describing something about the UI that’s currently focused, because that is probably the element of most interest to the user. However, if a UI element changes somewhere in the screen and it does not have the focus, the user may not be informed and miss important information. +Screen readers such as Narrator help people know the UI contents of an application, usually by describing something about the UI that's currently focused, because that is probably the element of most interest to the user. However, if a UI element changes somewhere in the screen and it does not have the focus, the user may not be informed and miss important information. LiveRegions are meant to solve this problem. A developer can use them to inform the screen reader or any other [UI Automation][UI Automation Overview](https://docs.microsoft.com/dotnet/framework/ui-automation/ui-automation-overview) client that an important change has been made to a UI element. The screen reader can then decide how and when to inform the user of this change. The LiveSetting property also lets the screen reader know how important it is to inform the user of the change made to the UI. @@ -47,7 +47,7 @@ __How to opt in or out of these changes__ In order for the application to benefit from these changes, it must run on the .NET Framework 4.7.1 or later. The application can benefit from these changes in either of the following ways: - It is recompiled to target the .NET Framework 4.7.1. These accessibility changes are enabled by default on WPF applications that target the .NET Framework 4.7.1 or later. -- It opts out of the legacy accessibility behaviors by adding the following [AppContext Switch](https://docs.microsoft.com/dotnet/framework/configure-apps/file-schema/runtime/appcontextswitchoverrides-element) in the `````` section of the app config file and setting it to false, as the following example shows. +- It opts out of the legacy accessibility behaviors by adding the following [AppContext Switch](https://docs.microsoft.com/dotnet/framework/configure-apps/file-schema/runtime/appcontextswitchoverrides-element) in the `` section of the app config file and setting it to false, as the following example shows. ``` diff --git a/Documentation/compatibility/wpf-layout-rounding-of-margins-has-changed.md b/Documentation/compatibility/wpf-layout-rounding-of-margins-has-changed.md index f2351a6d6..dff018e26 100644 --- a/Documentation/compatibility/wpf-layout-rounding-of-margins-has-changed.md +++ b/Documentation/compatibility/wpf-layout-rounding-of-margins-has-changed.md @@ -32,6 +32,6 @@ Apps that target the .NET Framework 4.6 but want WPF controls to render using th ### Category Windows Presentation Foundation (WPF) -[More information](https://docs.microsoft.com/en-us/dotnet/articles/framework/migration-guide/mitigation-wpf-layout) +[More information](~/docs/framework/migration-guide/mitigation-wpf-layout.md) diff --git a/Documentation/compatibility/wpf-selector-crash-when-removing-item-from-custom-collection.md b/Documentation/compatibility/wpf-selector-crash-when-removing-item-from-custom-collection.md index c9032f8ca..46d1ad288 100644 --- a/Documentation/compatibility/wpf-selector-crash-when-removing-item-from-custom-collection.md +++ b/Documentation/compatibility/wpf-selector-crash-when-removing-item-from-custom-collection.md @@ -13,7 +13,7 @@ Minor NotPlanned ### Change Description -An 'T:System.InvalidOperationException` can occur in the following scenario: +An `T:System.InvalidOperationException` can occur in the following scenario: * The ItemsSource for a `T:System.Windows.Controls.Primitives.Selector` is a collection with a custom implementation of `T:System.Collections.Specialized.INotifyCollectionChanged`. * The selected item is removed from the collection. diff --git a/Documentation/compatibility/wpf-selector-selectionchanged-and-selectedvalue.md b/Documentation/compatibility/wpf-selector-selectionchanged-and-selectedvalue.md index d91fe18be..5d3f3ae54 100644 --- a/Documentation/compatibility/wpf-selector-selectionchanged-and-selectedvalue.md +++ b/Documentation/compatibility/wpf-selector-selectionchanged-and-selectedvalue.md @@ -10,16 +10,16 @@ Minor NotPlanned ### Change Description -Starting with the .Net Framework 4.7.1, a `T:System.Windows.Controls.Primitives.Selector` always updates the value of its -`P:System.Windows.Controls.Primitives.Selector.SelectedValue` property before raising the -`E:System.Windows.Controls.Primitives.Selector.SelectionChanged` event, when its selection changes. +Starting with the .Net Framework 4.7.1, a always updates the value of its + property before raising the + event, when its selection changes. This makes the SelectedValue property consistent with the other selection properties -(`P:System.Windows.Controls.Primitives.Selector.SelectedItem` and -`P:System.Windows.Controls.Primitives.Selector.SelectedIndex`), which are updated before raising the event. +( and +), which are updated before raising the event. In the .NET Framework 4.7 and earlier versions, the update to SelectedValue happened before the event in most cases, but it happened after the event if the selection change was caused by changing the -`P:System.Windows.Controls.Primitives.Selector.SelectedValue` property. + property. - [X] Quirked - [ ] Build-time break @@ -30,7 +30,8 @@ by adding the following to the `` section of the application configurat ```xml - + ``` diff --git a/Documentation/compatibility/wpf-tabcontrol-selectionchanged-and-selectedcontent.md b/Documentation/compatibility/wpf-tabcontrol-selectionchanged-and-selectedcontent.md index 1cf1f61c1..676d747db 100644 --- a/Documentation/compatibility/wpf-tabcontrol-selectionchanged-and-selectedcontent.md +++ b/Documentation/compatibility/wpf-tabcontrol-selectionchanged-and-selectedcontent.md @@ -10,9 +10,9 @@ Minor NotPlanned ### Change Description -Starting with the .NET Framework 4.7.1, a `T:System.Windows.Controls.TabControl` updates the value of its -`P:System.Windows.Controls.TabControl.SelectedContent` property before raising the -`E:System.Windows.Controls.Primitives.Selector.SelectionChanged` event, when its selection changes. +Starting with the .NET Framework 4.7.1, a updates the value of its + property before raising the + event, when its selection changes. In the .NET Framework 4.7 and earlier versions, the update to SelectedContent happened after the event. diff --git a/Documentation/compatibility/x509certificateclaimset_findclaims-considers-all-claimtypes.md b/Documentation/compatibility/x509certificateclaimset_findclaims-considers-all-claimtypes.md index 938932a01..5454c9191 100644 --- a/Documentation/compatibility/x509certificateclaimset_findclaims-considers-all-claimtypes.md +++ b/Documentation/compatibility/x509certificateclaimset_findclaims-considers-all-claimtypes.md @@ -27,7 +27,7 @@ method attempts to match the claimType argument only with the last DNS entry. This change only affects applications targeting the .NET Framework 4.6.1. This change may be disabled (or enabled if targetting pre-4.6.1) with the -[DisableMultipleDNSEntries](https://docs.microsoft.com/en-us/dotnet/articles/framework/migration-guide/mitigation-x509certificateclaimset-findclaims-method#mitigation) +[DisableMultipleDNSEntries](~/docs/framework/migration-guide/mitigation-x509certificateclaimset-findclaims-method#mitigation) compatibility switch. ### Affected APIs diff --git a/data/platforms.json b/data/platforms.json index 3505e75d4..264c560c3 100644 --- a/data/platforms.json +++ b/data/platforms.json @@ -55,7 +55,7 @@ "runtime": [ { "name": ".NET Core 2.0", - "link": "https://github.com/dotnet/core/blob/master/release-notes/download-archives/2.0.0-download.md" + "link": "https://github.com/dotnet/core/blob/master/release-notes/download-archives/2.0.3.md" } ] }, @@ -74,11 +74,11 @@ "runtime": [ { "name": ".NET Core 1.0", - "link": "https://github.com/dotnet/core/releases/tag/1.0.4" + "link": "https://github.com/dotnet/core/releases/tag/1.0.8" }, { "name": ".NET Core 1.1", - "link": "https://github.com/dotnet/core/releases/tag/1.1.1" + "link": "https://github.com/dotnet/core/releases/tag/1.1.5" } ] }, diff --git a/dotnet-developer-projects.md b/dotnet-developer-projects.md index 1f79669f3..095768edf 100644 --- a/dotnet-developer-projects.md +++ b/dotnet-developer-projects.md @@ -68,6 +68,7 @@ Please sort projects alphabetically and provide a one-line description. GitHub/C * [DotVVM](https://github.com/riganti/dotvvm) - MVVM framework for people who don't like to write JavaScript, with OWIN and ASP.NET Core support and a free extension for Visual Studio 2015 and 2017. * [Nancy](https://github.com/NancyFx/Nancy) - A lightweight, low-ceremony, framework for building HTTP based services on .NET and Mono. * [NemerleWeb](https://github.com/NemerleWeb/NemerleWeb) - Web MVVM library for .Net. It uses reactive data model which allows creating rich internet applications. + * [ServiceStack](https://servicestack.net) - Comprehensive and lightning fast message-based framework including ORM, caching, authentication, templating, SPA integrations, etc. ## Static Site Generators * [FsBlog](https://github.com/fsprojects/FsBlog/) - Blog aware, static site generation using F#. @@ -342,6 +343,7 @@ Please sort projects alphabetically and provide a one-line description. GitHub/C * [Material Design in XAML Toolkit](https://github.com/ButchersBoy/MaterialDesignInXamlToolkit) - WPF/XAML resources, styles & templates for creating applications using Material Design * [Mono XWT](https://github.com/mono/xwt) - A cross-platform UI toolkit for creating desktop apps * [UWP Community Toolkit](https://github.com/Microsoft/UWPCommunityToolkit) - The UWP Community Toolkit is a collection of helper functions, custom controls, and app services. It simplifies and demonstrates common developer tasks building UWP apps for Windows 10. + * [Neutronium](https://github.com/NeutroniumCore/Neutronium) - Neutronium is a library to create .NET desktop applications using HTML, CSS and javascript. It uses the MVVM pattern exactly the same way as WPF applications. ## Windows Services * [King.Service](https://github.com/jefking/King.Service) - Task scheduling for Azure and Windows @@ -367,6 +369,8 @@ Please sort projects alphabetically and provide a one-line description. GitHub/C * [Orleans](https://github.com/dotnet/orleans) - Framework that provides a straight-forward approach to building distributed high-scale computing applications using virtual actor model. ## Windows Workflow + * [Core WF](https://github.com/dmetzgar/corewf) - WF runtime ported to work on .NET Core. + * [Orleans.Activities](https://github.com/OrleansContrib/Orleans.Activities) - WF over [Microsoft Orleans](https://github.com/dotnet/orleans) framework. * [Workflow Extractor](https://github.com/punitganshani/WorkflowExtractor) - Document Windows Workflow logic into a Word document or Excel sheet. ## Amazon Echo/Alexa Integration diff --git a/releases/UWP/net-native1.4/README.md b/releases/UWP/net-native1.4/README.md index fa7704952..a3f096b0c 100644 --- a/releases/UWP/net-native1.4/README.md +++ b/releases/UWP/net-native1.4/README.md @@ -4,8 +4,10 @@ You can see what was included in each .NET Native 1.4 ([Microsoft.NETCore.Univer When using Visual Studio these packages require Visual Studio 2015 Update 3 or later. -### 5.2.3 (March 7, 2017) +### 5.2.4 (January 9th, 2018) +- Fixed CVE-2018-0786: Security Feature Bypass in X509 Certificate Validation: https://github.com/Microsoft/dotnet/issues/597 +### 5.2.3 (March 7, 2017) - Fixed an [issue](https://github.com/dotnet/corefx/issues/10374) that caused DataContractJsonSerializer to fail to serialize any [DataContract] type whose default constructor is not public. - Fixed a regression in 5.2.2 where [4 Libraries were accidently no longer referenced by default](https://github.com/dotnet/corefx/issues/10338) - System.Collections.NonGeneric @@ -21,7 +23,6 @@ You can read more about these changes in the Visual Studio 2015 Update 3 blog [p - Improved runtime performance for XAML applications and Unity games. ## Resources - - [Getting Started with .NET Native](https://docs.microsoft.com/en-us/dotnet/framework/net-native/getting-started-with-net-native) - [Microsoft.NETCore.UniversalWindowsPlatform NuGet Package Details](https://www.nuget.org/packages/Microsoft.NETCore.UniversalWindowsPlatform) - [Windows Dev Center](https://developer.microsoft.com/en-us/windows/apps/getstarted) diff --git a/releases/UWP/net-native1.6/README.md b/releases/UWP/net-native1.6/README.md index ed2f8876c..4935bff08 100644 --- a/releases/UWP/net-native1.6/README.md +++ b/releases/UWP/net-native1.6/README.md @@ -4,20 +4,19 @@ You can see what was included in each .NET Native 1.6 ([Microsoft.NETCore.Univer When using Visual Studio these packages require Visual Studio 2017 or later. -### 5.3.4 (August 4, 2017) +### 5.3.5 (January 9th, 2018) +- Fixed CVE-2018-0786: Security Feature Bypass in X509 Certificate Validation: https://github.com/Microsoft/dotnet/issues/597 +### 5.3.4 (August 4, 2017) - Corrected an issue where System.Threading.Thread.MemoryBarrier was implemented as no-op on x86 release builds. ### 5.3.3 (April 24, 2017) - - Corrected an [issue](http://stackoverflow.com/questions/43530071/how-to-fix-app-submission-error-of-1300) for projects that have Visual Studio configuration values that are not "DEBUG" or "RELEASE" that causes Windows Store submission failure (error code 1300). For example, most Unity apps use a configuration named "Master". ### 5.3.2 (April 6, 2017) - - Fixed an issue that caused MAKEPRI build warnings to be emitted when building app packages for UWP projects. ### 5.3.1 (March 7, 2017) - - Fixed an [issue](https://github.com/dotnet/corefx/issues/10374) that caused DataContractJsonSerializer to fail to serialize any [DataContract] type whose default constructor is not public. - Fixed a regression in 5.3.0 where [4 Libraries were accidently no longer referenced by default](https://github.com/dotnet/corefx/issues/10338) - System.Collections.NonGeneric diff --git a/releases/UWP/net-native1.7/README.md b/releases/UWP/net-native1.7/README.md index f3bd6de05..fa57d0aec 100644 --- a/releases/UWP/net-native1.7/README.md +++ b/releases/UWP/net-native1.7/README.md @@ -1,14 +1,22 @@ -# .NET Native 1.7 (UWP 5.4.x) Release Notes - -You can see what was included in each .NET Native 1.7 ([Microsoft.NETCore.UniversalWindowsPlatform 5.4.x](https://www.nuget.org/packages/Microsoft.NETCore.UniversalWindowsPlatform)) release, below. +# .NET native tools 1.7 Release Notes +You can see what was included in each .NET Native 1.7 ([Microsoft.NETCore.UniversalWindowsPlatform 5.4.x](https://www.nuget.org/packages/Microsoft.NETCore.UniversalWindowsPlatform)) release below. When using Visual Studio these packages require Visual Studio 2017 or later. -### 5.4.1 (October 9, 2017) -- Fixed an issue with Microsoft.NetNative.targets that prevented C++ hybrid apps from compiling; apps would fail to compile due to an attempt to write a file to a folder that does not exist. [511674] +### UWP 5.4.2 (.NET native tools 1.7.3) (January 9th, 2018) +- Fixed CVE-2018-0786: Security Feature Bypass in X509 Certificate Validation: https://github.com/Microsoft/dotnet/issues/597 + +### UWP 6.0.5 (.NET native tools 1.7.3) (December 12th, 2017) +- Fixed a GC memory leak. [506391] -### 5.4.0 (August 11, 2017) +### UWP 6.0.4 (.NET native tools 1.7.2) (December 4th, 2017) +- Fixed an unhandled exception when ClientWebSocket loses connection to server. [518456] +- Fixed a regression in the 1.7 toolchain causing winmd file corruption when the file stream is left open. [496929] + +### UWP 5.4.1 (.NET native tools 1.7.1) (October 9th, 2017) +- Fixed an issue with Microsoft.NetNative.targets that prevented C++ hybrid apps from compiling; apps would fail to compile due to an attempt to write a file to a folder that does not exist. [511674] +### UWP 5.4.0 (.NET native tools 1.7.0) (August 11th, 2017) #### Improved Diagnostics and Better Support for Portable PDBs - In .NET Native 1.7, we added support for the new [Portable PDB format](https://github.com/dotnet/corefx/blob/master/src/System.Reflection.Metadata/specs/PortablePdb-Metadata.md) for representing symbol information in the .NET Native UWP compiler. The portable PDB format was originally developed to support cross-platform symbol information for managed code as well as drastically reduce the size of debug info - the format makes use of the MSIL module metadata instead of duplicating it and, because of this, it is typically an order of magnitude shorter than the equivalent Windows PDB. In addition to that, the portable PDB format supports an "embedded" flavor in which the symbol information is directly attached to the MSIL executable in form of a binary blob, making it much easier to deploy such managed binaries, not having to care about two different files (with all the related problems of mutual compatibility, signing etc.). The debugging experience is on par with Windows PDB's - we encode the same debug information just in a more compact manner. The previous version of the .NET Native toolchain was oblivious of the portable PDB format. [1640097] diff --git a/releases/UWP/net-native2.0/README.md b/releases/UWP/net-native2.0/README.md index 2c64b32f8..281019260 100644 --- a/releases/UWP/net-native2.0/README.md +++ b/releases/UWP/net-native2.0/README.md @@ -1,11 +1,31 @@ -# .NET Native 2.0 (UWP 6.0.x) Release Notes +# .NET native tools 2.0 (UWP 6.0.x) Release Notes -You can see what was included in each .NET Native 2.0 ([Microsoft.NETCore.UniversalWindowsPlatform 6.0.x](https://www.nuget.org/packages/Microsoft.NETCore.UniversalWindowsPlatform)) release, below. +You can see what was included in each .NET Native 2.0 ([Microsoft.NETCore.UniversalWindowsPlatform 6.0.x](https://www.nuget.org/packages/Microsoft.NETCore.UniversalWindowsPlatform)) release below. When using Visual Studio these packages require Visual Studio 2017 Version 15.4 or later. +### UWP 6.0.7 (.NET native tools 2.0.3) (February 7th, 2018) +- Updated ILC to copy all .pdb files to the output .appxsyms, including ones that do not have matching binaries. [524755] -### 6.0.1 (October 5, 2017) +### UWP 6.0.6 (.NET native tools 2.0.2) (January 9th, 2018) +- Fixed CVE-2018-0786: Security Feature Bypass in X509 Certificate Validation: https://github.com/Microsoft/dotnet/issues/597 + +### UWP 6.0.5 (.NET native tools 2.0.2) (December 12th, 2017) +- Updated the .NET native 1.7 tool chain to 1.7.3 [.NET Native 1.7 (UWP 5.4.x) Release Notes](https://github.com/Microsoft/dotnet/blob/master/releases/UWP/net-native1.7/README.md). + +### UWP 6.0.4 (.NET native tools 2.0.2) (December 4th, 2017) +- Fixed a crash in debug config with static analysis enabled in project properties. [473689] +- Improved telemetry included in ILC crashes, enabling failure determination. [521523] +- Fixed for a GC memory leak. [506391] +- Updated the .NET native 1.7 tool chain to 1.7.2. [.NET Native 1.7 (UWP 5.4.x) Release Notes](https://github.com/Microsoft/dotnet/blob/master/releases/UWP/net-native1.7/README.md). +### UWP 6.0.2 (.NET native tools 2.0.1) (November 20, 2017) +- Fixed an issue when building UWP apps that target RS3 and reference the Microsoft Store Services SDK and Microsoft Advertising SDK or Store Engagement SDK [514498] +- Fixed crashes due to an error in the compiler's garbage collection reporting (affects ARM apps built with .NET Native) [507618] +- Improved performance for creating new UWP Projects. [512775] +- Fixed issues that enable Windows Application Packaging (Centennial) projects publishing scenarios [521438] +- Enabled a P/Invoke feature for WindowsSDK Store in RS3 [518300] + +### 6.0.1 (October 5, 2017) #### .NET Standard 2.0 Support diff --git a/releases/net471/KnownIssues/470006-GC Crashes with high rate of large object allocation.md b/releases/net471/KnownIssues/470006-GC Crashes with high rate of large object allocation.md new file mode 100644 index 000000000..c3e1c2a01 --- /dev/null +++ b/releases/net471/KnownIssues/470006-GC Crashes with high rate of large object allocation.md @@ -0,0 +1,34 @@ +# Rare crashes can occur when background GC is enabled in applications that allocate and free large objects at a high rate + +## Symptoms + +When background GC is enabled, an application running on .NET Framework 4.7.1 experiences +intermittent crashes that did not occur when running on other .NET Framework versions. + +## Cause + +.NET Framework 4.7.1 includes changes that improve background GC performance. +Because of these changes, a rare combination of factors can cause the background GC +to reclaim a large object while the program is still using it. + +## Impact + +This problem impacts applications that run with the background GC enabled and that also allocate +and free large objects at a high rate. As described in the article [Fundamentals of Garbage Collection](https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals#the-managed-heap), +a large object is any object that is 85,000 bytes or larger in size. + +This problem is rare, and is more likely to occur when running on the x86 version of the +.NET Framework than when running on the x64 version of the 4.7.1 .NET Framework. + +## Workarounds + +The most practical workaround is to disable the background GC by setting the enabled attribute of the [ element](https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/runtime/gcconcurrent-element) in the + section of your application configuration file to false. + +The only other workaround is to change the application to allocate and free large objects +at a much lower rate. + +## Resolution + +This problem is fixed in [.NET Framework 4.7.2](http://go.microsoft.com/fwlink/?LinkId=863281). + diff --git a/releases/net471/KnownIssues/510901-BCL Apps targeting .NET-4.6.1 that use .NET Standard libraries might be broken when running on .NET 4.7.1.md b/releases/net471/KnownIssues/510901-BCL Apps targeting .NET-4.6.1 that use .NET Standard libraries might be broken when running on .NET 4.7.1.md index e1301a784..6933f7625 100644 --- a/releases/net471/KnownIssues/510901-BCL Apps targeting .NET-4.6.1 that use .NET Standard libraries might be broken when running on .NET 4.7.1.md +++ b/releases/net471/KnownIssues/510901-BCL Apps targeting .NET-4.6.1 that use .NET Standard libraries might be broken when running on .NET 4.7.1.md @@ -2,20 +2,60 @@ ## Symptoms -Applications that target the .NET Framework 4.6.1 and use .NET Standard libraries may experience exceptions when running on the .NET Framework 4.7.1 +Applications that target the .NET Framework 4.6.1 and use .NET Standard libraries may experience System.TypeLoadException exceptions when running on the .NET Framework 4.7.1 ## Cause The .NET Framework 4.7.1 adds support for .NET Standard in-box. As part of this change, a few assemblies that used to ship independently from the .NET Framework have now been added to the .NET Framework. As these .NET Standard assemblies were not part of the .NET Framework prior to .NET 4.7.1, they were deployed with the application, and a binding redirect was added to the application's app.config file. -When running on the .NET Framework 4.7.1, where the assemblies are now part of the Framework, the application now has two types with different identities, and that leads to a . One type comes from the app-local assembly, and the other one comes from the .NET Framework assembly. +When running on the .NET Framework 4.7.1, where the assemblies are now part of the Framework, the application now has two types with different identities, and that leads to a TypeLoadException. One type comes from the app-local assembly, and the other one comes from the .NET Framework assembly. Also reported here: https://github.com/Microsoft/dotnet-framework-early-access/issues/9 +## Impact + +The following types are potentially impacted by this issue. + +- System.Data.Common.DbColumn +- System.Data.Common.DbDataReaderExtensions +- System.Data.Common.IDbColumnSchemaGenerator +- System.Diagnostics.StackFrameExtensions +- System.Globalization.GlobalizationExtensions +- System.Net.Sockets.SocketReceiveFromResult +- System.Net.Sockets.SocketReceiveMessageFromResult +- System.Net.Sockets.SocketTaskExtensions +- System.Runtime.CompilerServices.TupleElementNamesAttribute +- System.Runtime.InteropServices.Architecture +- System.Runtime.InteropServices.OSPlatform +- System.Runtime.InteropServices.RuntimeInformation +- System.Runtime.Serialization.DataContractSerializerExtensions +- System.Runtime.Serialization.ISerializationSurrogateProvider +- System.Security.Cryptography.ECCurve +- System.Security.Cryptography.ECParameters +- System.Security.Cryptography.ECPoint +- System.Security.Cryptography.IncrementalHash +- System.Security.SecureStringMarshal +- System.StringNormalizationExtensions +- System.Threading.PreAllocatedOverlapped +- System.Threading.ThreadPoolBoundHandle +- System.TupleExtensions +- System.ValueTuple +- System.ValueTuple`1 +- System.ValueTuple`2 +- System.ValueTuple`3 +- System.ValueTuple`4 +- System.ValueTuple`5 +- System.ValueTuple`6 +- System.ValueTuple`7 +- System.ValueTuple`8 +- System.Xml.XPath.XDocumentExtensions ## Workarounds There are two ways to work around this issue: - When running on .NET Framework 4.7.1, remove the binding redirects from the app.config file for the assemblies that are now part of the .NET Framework. - - Re-target your application to target the .NET Framwork 4.7.1 + - Re-target your application to target the .NET Framwork 4.7 or .NET Framework 4.7.1. +## Resolution + +[09-Jan-2018] The fix for this issue is included in the [Update for .NET Framework 4.7.1 - KB4054856](http://go.microsoft.com/fwlink/?LinkId=866028) for all platforms except Windows 10 Fall Creators Update. \ No newline at end of file diff --git a/releases/net471/KnownIssues/517815-BCL Applications making heavy use of System.Diagnostics.StackTrace might run more slowly on .NET 4.7.1.md b/releases/net471/KnownIssues/517815-BCL Applications making heavy use of System.Diagnostics.StackTrace might run more slowly on .NET 4.7.1.md new file mode 100644 index 000000000..e089f5bcf --- /dev/null +++ b/releases/net471/KnownIssues/517815-BCL Applications making heavy use of System.Diagnostics.StackTrace might run more slowly on .NET 4.7.1.md @@ -0,0 +1,29 @@ +# Applications making heavy use of System.Diagnostics.StackTrace or Exception.StackTrace might run more slowly on the .NET Framework 4.7.1 + +## Symptoms + +An application that had acceptable performance running on the .NET Framework 4.7 or earlier versions executes more slowly when running on the .NET Framework 4.7.1 + +## Cause + +The .NET Framework 4.7.1 added support for detecting and parsing the Portable PDB file format to show file and line number information in stack traces. As part of this change, each function in a +stack trace has its defining module checked to determine if that module uses the Portable PDB format. Due to some differences in the internal caching policy, the +runtime spends far more time searching for Portable PDBs than previous .NET Framework versions spent searching for classic Windows PDBs. This causes formatted stack traces to be +produced more slowly than before. + +The issue was originally reported here: https://github.com/Microsoft/dotnet/issues/529 + +## Workarounds + +Call the [System.Diagnostics.StackTrace.#ctor(Boolean)](https://docs.microsoft.com/dotnet/api/system.diagnostics.stacktrace.-ctor?view=netframework-4.7.1#System_Diagnostics_StackTrace__ctor_System_Boolean_) constructor with `false` argument to avoid capturing source information. This avoids the portion of the code where performance +regressed. + +## Resolution + +[09-Jan-2018] The fix for this issue is available as follows: +- For Windows 10 Fall Creators Update, see the update https://support.microsoft.com/en-us/help/4058258/windows-10-update-kb4058258. +- For all other platforms, the fix for this issue is included in the [Update for .NET Framework 4.7.1 - KB4054856](http://go.microsoft.com/fwlink/?LinkId=866028). + +This fix removes the Portable PDB functionality from 4.7.1. In [.NET Framework 4.7.2](http://go.microsoft.com/fwlink/?LinkId=863281), we anticipate having an improved fix available which both performs well and re-enables the portable PDB functionality. + + diff --git a/releases/net471/KnownIssues/517815-BCL Stack traces are missing source information for frames with debug information in the Portable PDB format.md b/releases/net471/KnownIssues/517815-BCL Stack traces are missing source information for frames with debug information in the Portable PDB format.md new file mode 100644 index 000000000..8be3b104d --- /dev/null +++ b/releases/net471/KnownIssues/517815-BCL Stack traces are missing source information for frames with debug information in the Portable PDB format.md @@ -0,0 +1,20 @@ + +# Stack traces are missing source information for frames with debug information in the Portable PDB format when running on .NET Framework 4.7.1 + +## Symptoms + +An application that formats stack traces is missing source information for some or all frames. This includes stack traces formatted via [System.Exception.ToString()](https://docs.microsoft.com/en-us/dotnet/api/system.exception.tostring?view=netframework-4.7.1), [System.Exception.StackTrace](https://docs.microsoft.com/en-us/dotnet/api/system.exception.stacktrace?view=netframework-4.7.1) and [System.Diagnostics.StackTrace.ToString()](https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.stacktrace.tostring?view=netframework-4.7.1). +The frames missing source information reside in assemblies that have pdbs in the [Portable PDB format](https://github.com/dotnet/core/blob/master/Documentation/diagnostics/portable_pdb.md) present on disk. + +## Cause + +The .NET Framework 4.7.1 added support for detecting and parsing the Portable PDB file format to show file and line number information in stack traces. However, due to an [implementation issue](https://github.com/Microsoft/dotnet/blob/master/releases/net471/KnownIssues/517815-BCL%20Applications%20making%20heavy%20use%20of%20System.Diagnostics.StackTrace%20might%20run%20more%20slowly%20on%20.NET%204.7.1.md), the feature had an unacceptable performance impact and Microsoft intentionally disabled it. + +## Workarounds + +- If you control the build process for the problematic assemblies you may be able to configure it to generate the classic Windows PDB format instead. +- You can use the [PDB conversion tool](https://github.com/dotnet/symreader-converter) to convert the Portable PDBs into the classic Windows PDB format and deploy those with the application instead. + +## Resolution + +A fix is anticipated in .NET Framework 4.7.2 in the near future that restores Portable PDB functionality with greatly improved performance. diff --git a/releases/net471/KnownIssues/521954 - BCL CultureAwareComparer with ignore casing on serialized on previous versions of .NET do not correctly deserialize on .NET 4.7.1.md b/releases/net471/KnownIssues/521954 - BCL CultureAwareComparer with ignore casing on serialized on previous versions of .NET do not correctly deserialize on .NET 4.7.1.md new file mode 100644 index 000000000..03b31f030 --- /dev/null +++ b/releases/net471/KnownIssues/521954 - BCL CultureAwareComparer with ignore casing on serialized on previous versions of .NET do not correctly deserialize on .NET 4.7.1.md @@ -0,0 +1,32 @@ +# CultureAwareComparer with ignore casing serialized on previous versions of .NET Framework does not correctly deserialize on .NET Framework 4.7.1 + +## Symptoms + +When deserializing a CultureAwareComparer that was serialized using ignore case on a previous version of .NET Framework on a machine running .NET Framework 4.7.1, the comparer becomes case sensitive. + +## Cause + +In the .NET Framework 4.7.1 we added the ability to specify more comparer options when doing a culture-aware comparison. +As part of that change we introduced a new field on the comparer that holds the information about what kind of comparison is requested. + +When that type, coming from a version of .NET Framework prior to 4.7.1 is deserialized on a .NET Framework 4.7.1 machine, the private field introduced in the .NET Framework 4.7.1 is reset to zero, which makes the comparer case sensitive. + +## Impact + +The following 2 comparers are susceptible to this issue. These comparers are usually used with collection types like Dictionary and Hashtable. +P:System.StringComparer.InvariantCultureIgnoreCase +P:System.StringComparer.CurrentCultureIgnoreCase + +## Workarounds + +Ensure that both serialization and deserialization occurs on systems running a version of the .NET Framework starting with 4.7.1. + +## Resolution + +If you are running on Windows 10 Fall Creators Update, an update is available that addresses this issue. Select one of the following links based on your processor architecture: + + x86: https://go.microsoft.com/fwlink/?linkid=862758 + + x64: https://go.microsoft.com/fwlink/?linkid=862762 + +[09-Jan-2018] The fix for this issue is included in the [Update for .NET Framework 4.7.1 - KB4054856](http://go.microsoft.com/fwlink/?LinkId=866028) for all platforms except Windows 10 Fall Creators Update. \ No newline at end of file diff --git a/releases/net471/KnownIssues/523633 - Setup - OS upgrade to Windows 10 gets the product in bad state.md b/releases/net471/KnownIssues/523633 - Setup - OS upgrade to Windows 10 gets the product in bad state.md new file mode 100644 index 000000000..499b8cd55 --- /dev/null +++ b/releases/net471/KnownIssues/523633 - Setup - OS upgrade to Windows 10 gets the product in bad state.md @@ -0,0 +1,23 @@ +# Application crashes occur when running on the .NET Framework 4.7.1 after upgrading from Windows 10 Anniversary Update to Windows 10 Creators Update + +## Symptoms +When you install the .NET Framework 4.7.1 on Windows 10 Anniversary Update (version 1607) and your system is upgraded to Windows 10 Creators Update (version 1703), applications that depend on any version of the .NET Framework 4.x may experience unexpected crashes. + +Consider the following scenario: + 1. On a Windows 10 Anniversary Update (version 1607) machine, install the .NET Framework 4.7.1. + 2. Upgrade the machine to Windows 10 Creators Update (version 1703) from Windows Update. + 3. Run an application that uses any version of .NET 4.X. + 4. The application experiences an unexpected crash. + +Note: Windows 10 Anniversary Update (version 1607) comes pre-installed with .NET Framework 4.6.2, and you can install .NET 4.7.1 on it using an offline (or web) installer. Similarly, Windows 10 Creators Update (version 1703) comes pre-installed with .NET Framework 4.7. + +## Cause +This issue occurs because the .NET Framework 4.7.1 product installation gets into a corrupted state after the OS upgrade. The OS upgrade preserves all the .NET 4.7.1 assemblies in the GAC as is, but the in-box assemblies are reverted to the in-box version (4.7). Due to this mixed state, the .NET applications exhibit unexpected behaviors. + +## Impact +Applications may experience unexpected crashes in certain scenarios. + +Note: This issue does not occur when you do an upgrade from Windows 10 Anniversary Update (version 1607) to Windows 10 Fall Creators Update (version 1709). + +## Resolution +To get the .NET Framework 4.7.1 product into a working state, you need to reinstall .NET 4.7.1. diff --git a/releases/net471/KnownIssues/534719-Networking ServicePoint.ConnectionLimit default behavior with loopback changed unexpectedly.md b/releases/net471/KnownIssues/534719-Networking ServicePoint.ConnectionLimit default behavior with loopback changed unexpectedly.md new file mode 100644 index 000000000..c6ca2d76f --- /dev/null +++ b/releases/net471/KnownIssues/534719-Networking ServicePoint.ConnectionLimit default behavior with loopback changed unexpectedly.md @@ -0,0 +1,73 @@ +# ServicePoint.ConnectionLimit default behavior with loopback changed unexpectedly + +## Symptoms +The limit for HTTP connections per endpoint is controlled by the `ServicePointManager.DefaultConnectionLimit` property. +This value defaults to 2. In the .NET Framework 4.7 and earlier versions, the limit applied only to non-loopback +addresses such as http://www.microsoft.com. For loopback addresses such as http://localhost, the limit for connections +was always int.MaxValue (2,147,483,647) unless changed by calling the `ServicePoint.ConnectionLimit` API. + +In the .NET Framework 4.7.1 when using HttpClient APIs, the connection limit for loopback addresses now matches the limit +for non-loopback addresses. Thus, the default limit is 2. This can cause applications to run slower or hang when +doing multiple, parallel, requests to the http://localhost addresses. + +Here is code that shows the problem: + +```c# +using System; +using System.Net; +using System.Net.Http; + +namespace ConsoleApp +{ + class Program + { + static void Main(string[] args) + { + Console.WriteLine($"ServicePointManager.DefaultConnectionLimit: {ServicePointManager.DefaultConnectionLimit}"); + + var uriLoopback = new Uri("http://localhost"); + var uriExternal = new Uri("http://www.microsoft.com"); + + Console.WriteLine("Before using HttpClient APIs"); + ServicePoint spLoopback = ServicePointManager.FindServicePoint(uriLoopback); + Console.WriteLine($"{uriLoopback.AbsoluteUri}, ConnectionLimit (should be {int.MaxValue}): {spLoopback.ConnectionLimit}"); + + ServicePoint spExternal = ServicePointManager.FindServicePoint(uriExternal); + Console.WriteLine($"{uriExternal.AbsoluteUri}, ConnectionLimit (should be {ServicePointManager.DefaultConnectionLimit}): {spExternal.ConnectionLimit}"); + + Console.WriteLine("Use HttpClient APIs"); + var client = new HttpClient(); + try + { + HttpResponseMessage response = client.GetAsync(uriLoopback).Result; + } + catch (Exception) + { + // Ignore any network error since there is probably not a loopback server present. + } + + Console.WriteLine("After using HttpClient APIs"); + + // BUG - due to the bug in .NET Framework 4.7.1, the ConnectionLimit for this loopback ServicePoint is changed + // unexpectedly. + Console.WriteLine($"{uriLoopback.AbsoluteUri}, ConnectionLimit (should be {int.MaxValue}): {spLoopback.ConnectionLimit}"); + } + } +} +``` + +## Cause +Changes in .NET Framework 4.7.1 to the `System.Net.Http.HttpClientHandler` class caused this problem. + +## Resolution +To work around the problem using HttpClient APIs, you can use the following code to increase the connection limit. +This code should be added before calling any HttpClient APIs. + +```c# +ServicePointManager.DefaultConnectionLimit = 20; // Actual value should be based on your requirements. +``` + +Note: This will also change the limits for non-loopback addresses. + +## More information +We will fix this problem in a future .NET Framework Quality Rollup release. diff --git a/releases/net471/dotnet471-known-issues.md b/releases/net471/dotnet471-known-issues.md index b1afb4970..551943b3c 100644 --- a/releases/net471/dotnet471-known-issues.md +++ b/releases/net471/dotnet471-known-issues.md @@ -4,8 +4,14 @@ This document lists the known issues that you may experience after you install the Microsoft .NET Framework 4.7.1. ## Product issues for the .NET Framework 4.7.1 -- [479874 - WPF Touch Stops Working After Rapid/Prolonged Use Of Popups](https://github.com/Microsoft/dotnet/blob/master/releases/net471/KnownIssues/479874-WPF%20Touch%20Stops%20Working%20After%20Prolonged%20Use%20of%20Popups.md) -- [481090 - WPF Touch generates a NullReferenceException in WispLogic.ProcessInputReport](https://github.com/Microsoft/dotnet/blob/master/releases/net471/KnownIssues/481090-WPF%20Touch%20generates%20NullReferenceException%20in%20ProcessInputReport.md) -- [489937 - WPF Touch/Stylus Generates AccessViolations and Heap Corruption in GetPenEventMultiple](https://github.com/Microsoft/dotnet/blob/master/releases/net471/KnownIssues/489937-WPF%20Touch%20and%20Stylus%20AccessViolation%20in%20GetPenEventMultiple.md) -- [493108 - WPF InvalidCastException when displaying a checked MenuItem](https://github.com/Microsoft/dotnet/blob/master/releases/net471/KnownIssues/493108-WPF%20InvalidCastException%20when%20displaying%20a%20checked%20MenuItem.md) -- [510901 - Applications targeting .NET 4.6.1 that use .NET Standard libraries might be broken when running on .NET 4.7.1](https://github.com/Microsoft/dotnet/blob/master/releases/net471/KnownIssues/510901-BCL%20Apps%20targeting%20.NET-4.6.1%20that%20use%20.NET%20Standard%20libraries%20might%20be%20broken%20when%20running%20on%20.NET%204.7.1.md) +- [470006 - GC - Rare crashes can occur when background GC is enabled in applications that allocate and free large objects at a high rate](https://github.com/Microsoft/dotnet/blob/master/releases/net471/KnownIssues/470006-GC%20Crashes%20with%20high%20rate%20of%20large%20object%20allocation.md) +- [479874 - WPF - Touch Stops Working After Rapid/Prolonged Use Of Popups](https://github.com/Microsoft/dotnet/blob/master/releases/net471/KnownIssues/479874-WPF%20Touch%20Stops%20Working%20After%20Prolonged%20Use%20of%20Popups.md) +- [481090 - WPF - Touch generates a NullReferenceException in WispLogic.ProcessInputReport](https://github.com/Microsoft/dotnet/blob/master/releases/net471/KnownIssues/481090-WPF%20Touch%20generates%20NullReferenceException%20in%20ProcessInputReport.md) +- [489937 - WPF - Touch/Stylus Generates AccessViolations and Heap Corruption in GetPenEventMultiple](https://github.com/Microsoft/dotnet/blob/master/releases/net471/KnownIssues/489937-WPF%20Touch%20and%20Stylus%20AccessViolation%20in%20GetPenEventMultiple.md) +- [493108 - WPF - InvalidCastException when displaying a checked MenuItem](https://github.com/Microsoft/dotnet/blob/master/releases/net471/KnownIssues/493108-WPF%20InvalidCastException%20when%20displaying%20a%20checked%20MenuItem.md) +- [510901 - BCL - Applications targeting .NET 4.6.1 that use .NET Standard libraries might be broken when running on .NET 4.7.1](https://github.com/Microsoft/dotnet/blob/master/releases/net471/KnownIssues/510901-BCL%20Apps%20targeting%20.NET-4.6.1%20that%20use%20.NET%20Standard%20libraries%20might%20be%20broken%20when%20running%20on%20.NET%204.7.1.md) +- [521954 - BCL - CultureAwareComparer with ignore casing serialized on previous versions of .NET Framework does not correctly deserialize on .NET Framework 4.7.1](https://github.com/Microsoft/dotnet/blob/master/releases/net471/KnownIssues/521954%20-%20BCL%20CultureAwareComparer%20with%20ignore%20casing%20on%20serialized%20on%20previous%20versions%20of%20.NET%20do%20not%20correctly%20deserialize%20on%20.NET%204.7.1.md) +- [517815 - BCL - Applications making heavy use of System.Diagnostics.StackTrace or Exception.StackTrace might run more slowly on the .NET Framework 4.7.1](https://github.com/Microsoft/dotnet/blob/master/releases/net471/KnownIssues/517815-BCL%20Applications%20making%20heavy%20use%20of%20System.Diagnostics.StackTrace%20might%20run%20more%20slowly%20on%20.NET%204.7.1.md) +- [517815 - BCL - Stack traces are missing source information for frames with debug information in the Portable PDB format when running on .NET Framework 4.7.1](https://github.com/Microsoft/dotnet/blob/master/releases/net471/KnownIssues/517815-BCL%20Stack%20traces%20are%20missing%20source%20information%20for%20frames%20with%20debug%20information%20in%20the%20Portable%20PDB%20format.md) +- [523633 - Setup - Application crashes occur when running on the .NET Framework 4.7.1 after upgrading from Windows 10 Anniversary Update to Windows 10 Creators Update](https://github.com/Microsoft/dotnet/blob/master/releases/net471/KnownIssues/523633%20-%20Setup%20-%20OS%20upgrade%20to%20Windows%2010%20gets%20the%20product%20in%20bad%20state.md) +- [534719 - Networking - ServicePoint.ConnectionLimit default behavior with loopback changed unexpectedly](https://github.com/Microsoft/dotnet/blob/master/releases/net471/KnownIssues/534719-Networking%20ServicePoint.ConnectionLimit%20default%20behavior%20with%20loopback%20changed%20unexpectedly.md)