{"id":30153,"date":"2020-10-01T11:35:34","date_gmt":"2020-10-01T18:35:34","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/dotnet\/?p=30153"},"modified":"2021-01-15T20:51:02","modified_gmt":"2021-01-16T03:51:02","slug":"net-framework-october-1-2020-cumulative-update-preview-update-for-windows-10-version-2004-and-windows-server-version-2004","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/net-framework-october-1-2020-cumulative-update-preview-update-for-windows-10-version-2004-and-windows-server-version-2004\/","title":{"rendered":".NET Framework October 1, 2020 Cumulative Update Preview Update for Windows 10, version 2004 and Windows Server, version 2004"},"content":{"rendered":"<p>Revised 1\/15\/2021:\u00a0 <em>Added known issues details for <strong>ASP.Net applications may not deliver cookieless tokens in the URI<\/strong><\/em><\/p>\n<p>Today, we are releasing the September 2020 Cumulative Update Preview Updates for .NET Framework.<\/p>\n<h3>Quality and Reliability<\/h3>\n<p>This release contains the following quality and reliability improvements.<\/p>\n<h5>ASP.NET<\/h5>\n<ul>\n<li>Disabled resuse of AppPathModifier in ASP.Net control output.<\/li>\n<li>HttpCookie objects in the ASP.Net request context will be created with configured defaults for cookie flags instead instead of .Net.NET-style primitive defaults to match the behavior of `new HttpCookie(name)`.<\/li>\n<\/ul>\n<h5>CLR<span style=\"font-size: 12pt;\"><sup>1<\/sup><\/span><\/h5>\n<ul>\n<li>Added a CLR config variable Thread_AssignCpuGroups (1 by default) that can be set to 0 to disable automatic CPU group assignment done by the CLR for new threads created by Thread.Start() and thread pool threads, such that an app may do its own thread-spreading.<\/li>\n<li>Addressed a rare data corruption that can occur when using new API\u2019s such as Unsafe.ByteOffset which are often used with the new Span types. The corruption could occur when a GC operation is performed while a thread is calling Unsafe.ByteOffset from inside of a loop.<\/li>\n<li>Addressed an issue regarding timers with very long due times ticking down much sooner than expected when the AppContext switch &#8220;Switch.System.Threading.UseNetCoreTimer&#8221; is enabled.<\/li>\n<\/ul>\n<h5>SQL<\/h5>\n<ul>\n<li>Addressed a failure that sometimes occured when a user connected to one Azure SQL database, performed an enclave based operation, and then connected to another database under the same server that has the same Attestation URL and performed an enclave operation on the second server.<\/li>\n<\/ul>\n<h5>WCF<span style=\"font-size: 12pt;\"><sup>2<\/sup><\/span><\/h5>\n<ul>\n<li>Addressed an issue with WCF services sometimes failing to start when starting multiple services concurrently.<\/li>\n<\/ul>\n<h5>Windows Forms<\/h5>\n<ul>\n<li>Addressed a regression introduced in .NET Framework 4.8, where Control.AccessibleName, Control.AccessibleRole, and Control.AccessibleDescription properties stopped working for the following controls:Label,GroupBox,ToolStrip,ToolStripItems,StatusStrip,StatusStripItems,PropertyGrid,ProgressBar,ComboBox,MenuStrip,MenuItems,DataGridView.<\/li>\n<li>Addressed a regression in accessible name for combo box items for data bound combo boxes. .NET Framework 4.8 RTM started using type name instead of the value of the DisplayMember property as an accessible name, this fiximprovement uses the DisplayMember again.<\/li>\n<\/ul>\n<p><sup>1 <\/sup>Common Language Runtime (CLR)\n<sup>2 <\/sup>Windows Communication Foundation (WCF)<\/p>\n<div id=\"section-3\" class=\"ng-scope\" data-js-in-page-navigation-anchor=\"section-3\">\n<h2 class=\"c-heading-4 f-lean bold ng-binding\">Known issues in this security update<\/h2>\n<\/div>\n<div>\n<h4><strong>ASP.Net applications fail during precompilation with error message<\/strong><\/h4>\n<\/div>\n<div class=\"section-body ng-scope\" style=\"box-sizing: inherit; outline: none; color: #000000; font-family: 'Segoe UI', SegoeUI, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-style: initial; text-decoration-color: initial;\">\n<div class=\"ng-scope\" data-grid=\"col-12\">\n<div class=\"ng-isolate-scope\" data-grid=\"col-12\">\n<p class=\"ng-scope\"><strong>Symptoms<\/strong>\nAfter you apply this October 13, 2020 Security and Quality Rollup for .NET Framework 4.8, some ASP.Net applications fail during precompilation. The error message that you receive will likely contain the words \u201cError ASPCONFIG.\u201d<\/p>\n<p><strong>Cause<\/strong>\nAn invalid configuration state in either the \u201csessionState,\u201d \u201canonymouseIdentification,\u201d or \u201cauthentication\/forms\u201d sections of \u201cSystem.web\u201d configuration. This might occur during build-and-publish routines if configuration transformations leave the Web.config file in an intermediate state for precompilation.<\/p>\n<p><strong>Workaround<\/strong>\nCustomers who observe new unexpected failures or functional issues can implement an application setting by adding (or merging) the following code to the application configuration file. Setting either \u201ctrue\u201d or \u201cfalse\u201d will avoid the issue. However, we recommend that you set this value to \u201ctrue\u201d for sites that do not rely on cookieless features.<\/p>\n<pre class=\"ng-scope\">&lt;?xml version=\"1.0\" encoding=\"utf-8\" ?&gt;\r\n&lt;configuration&gt;\r\n\u00a0 \u00a0 \u00a0 &lt;appSettings&gt;\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;add key=\u201daspnet:DisableAppPathModifier\u201d value=\u201dtrue\u201d \/&gt;\r\n\u00a0 \u00a0 \u00a0&lt;\/appSettings&gt;\r\n&lt;\/configuration&gt;<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div>\n<h4><strong>ASP.Net applications may not deliver cookieless tokens in the URI<\/strong><\/h4>\n<\/div>\n<div class=\"section-body ng-scope\" style=\"box-sizing: inherit; outline: none; color: #000000; font-family: 'Segoe UI', SegoeUI, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-style: initial; text-decoration-color: initial;\">\n<div class=\"ng-scope\" data-grid=\"col-12\">\n<div class=\"ng-isolate-scope\" data-grid=\"col-12\">\n<p class=\"ng-scope\"><strong>Symptoms<\/strong>\nAfter you apply this October 1, 2020 Security and Quality Rollup for .NET Framework 4.8, some ASP.Net applications may not deliver cookieless tokens in the URI, possibly resulting in 302-redirect loops or lost or missing session state.<\/p>\n<p><strong>Cause<\/strong>\nThe ASP.Net features for Session State, Anonymous Identification, and Forms Authentication all rely on issuing tokens to a web client, and they all allow the option for those tokens to be delivered in a cookie or embedded in the URI for clients that don\u2019t support cookies. The URI-embedding has long been an insecure and disrecommended practice and this KB quietly disables issuing tokens in URI\u2019s unless one of these three features explicitly requests a cookie mode of \u201cUseUri\u201d in configuration. Configurations that specify \u201cAutoDetect\u201d or \u201cUseDeviceProfile\u201d may inadvertently result in attempted and failed embedding of these tokens in the URI.<\/p>\n<p><strong>Workaround<\/strong>\nCustomers who observe new unexpected behavior are recommended to change all three cookieless settings to \u201cUseCookies\u201d if possible.<\/p>\n<pre class=\"ng-scope\">&lt;?xml version=\"1.0\" encoding=\"utf-8\" ?&gt;\r\n&lt;configuration&gt;\r\n     &lt;system.web&gt;\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;anonymousidentification cookieless=\"UseCookies\" \/&gt;\r\n\u00a0 \u00a0 \u00a0     &lt;sessionState cookieless=\"UseCookies\" \/&gt;\r\n          &lt;authentication&gt;\r\n               &lt;forms cookieless=\"UseCookies\" \/&gt;\r\n          &lt;\/authentication&gt;\r\n     &lt;\/system.web&gt;\r\n&lt;\/configuration&gt;<\/pre>\n<p>If an application absolutely must continue using URI-embedded tokens and can do so safely, then they can be re-enabled with the following appSeting. But again, it is highly recommended to move away from embedding these tokens in URI\u2019s.<\/p>\n<pre class=\"ng-scope\">&lt;?xml version=\"1.0\" encoding=\"utf-8\" ?&gt;\r\n&lt;configuration&gt;\r\n     &lt;appSettings&gt;\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;add key=\"aspnet:DisableAppPathModifier\" value=\"false\" \/&gt;\r\n     &lt;\/appSettings&gt;\r\n&lt;\/configuration&gt;<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<h3><a id=\"user-content-getting-the-update\" class=\"anchor\" href=\"#getting-the-update\"><\/a>Getting the Update<\/h3>\n<p>The Cumulative Update Preview is available via Windows Update and Microsoft Update Catalog.<\/p>\n<h5><a id=\"user-content-microsoft-update-catalog\" class=\"anchor\" href=\"#microsoft-update-catalog\"><\/a>Microsoft Update Catalog<\/h5>\n<p>You can get the update via the Microsoft Update Catalog. For Windows 10, NET Framework 4.8 updates are available via Windows Update and Microsoft Update Catalog. Updates for other versions of .NET Framework are part of the Windows 10 Monthly Cumulative Update.<\/p>\n<p>**Note**: Customers that rely on Windows Update will automatically receive the .NET Framework version-specific updates. Advanced system administrators can also take use of the below direct Microsoft Update Catalog download links to .NET Framework-specific updates. Before applying these updates, please ensure that you carefully review the .NET Framework version applicability, to ensure that you only install updates on systems where they apply.<\/p>\n<p>The following table is for Windows 10 and Windows Server 2016+ versions.<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"8px\">\n<thead>\n<tr>\n<th>Product Version<\/th>\n<th colspan=\"2\">Cumulative Update<\/th>\n<\/tr>\n<\/thead>\n<tbody><!--\n\n\n<tr bgcolor=\"#F0F0F0\">\n\n\n<td><strong>Windows 10 2004 and Windows Server, version 2004<\/strong><\/td>\n\n\n\n\n<td><\/td>\n\n\n\n\n<td><\/td>\n\n\n<\/tr>\n\n\n\n\n<tr>\n\n\n<td>.NET Framework 3.5, 4.8<\/td>\n\n\n\n\n<td><a href=\"http:\/\/www.catalog.update.microsoft.com\/Search.aspx?q=4578968\" rel=\"nofollow\">Catalog<\/a><\/td>\n\n\n\n\n<td><a href=\"https:\/\/support.microsoft.com\/kb\/4578968\" rel=\"nofollow\">4578968<span data-mce-type=\"bookmark\" style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" class=\"mce_SELRES_start\"><\/span><\/a><\/td>\n\n\n<\/tr>\n\n\n--><\/p>\n<tr bgcolor=\"#F0F0F0\">\n<td><strong>Windows 10 2004 and Windows Server, version 2004<\/strong><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>.NET Framework 3.5, 4.8<\/td>\n<td><a href=\"http:\/\/www.catalog.update.microsoft.com\/Search.aspx?q=4576945\" rel=\"nofollow\">Catalog<\/a><\/td>\n<td><a href=\"https:\/\/support.microsoft.com\/kb\/4576945\" rel=\"nofollow\">4576945<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<h5>Previous Cumulative Updates<\/h5>\n<p>The last few .NET Framework updates are listed below for your convenience:<\/p>\n<ul>\n<li><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/net-framework-september-2020-security-and-quality-rollup-updates\/\" rel=\"nofollow\">.NET Framework September 2020 Security and Quality Rollup Updates<\/a><\/li>\n<li><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/net-framework-september-3-2020-cumulative-update-preview-for-windows-10-2004-and-windows-server-version-2004\/\" rel=\"nofollow\">.NET Framework September 3, 2020 Cumulative Update Preview for Windows 10 2004 and Windows Server, version 2004<\/a><\/li>\n<li><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/august-2020-cumulative-update-preview\/\" rel=\"nofollow\">.NET Framework August 2020 Cumulative Update Preview<\/a><\/li>\n<li><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/net-framework-august-2020-security-and-quality-rollup-updates\/\" rel=\"nofollow\">.NET Framework August 2020 Security and Quality Rollup Updates<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Revised 1\/15\/2021:\u00a0 Added known issues details for ASP.Net applications may not deliver cookieless tokens in the URI Today, we are releasing the September 2020 Cumulative Update Preview Updates for .NET Framework. Quality and Reliability This release contains the following quality and reliability improvements. ASP.NET Disabled resuse of AppPathModifier in ASP.Net control output. HttpCookie objects in [&hellip;]<\/p>\n","protected":false},"author":369,"featured_media":58792,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[195],"tags":[],"class_list":["post-30153","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet-framework"],"acf":[],"blog_post_summary":"<p>Revised 1\/15\/2021:\u00a0 Added known issues details for ASP.Net applications may not deliver cookieless tokens in the URI Today, we are releasing the September 2020 Cumulative Update Preview Updates for .NET Framework. Quality and Reliability This release contains the following quality and reliability improvements. ASP.NET Disabled resuse of AppPathModifier in ASP.Net control output. HttpCookie objects in [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/30153","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/users\/369"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=30153"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/30153\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/58792"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=30153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=30153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=30153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}