Runtimeänderungen für die Migration zu .NET Framework 4.7.x
In diesem Artikel werden App-Kompatibilitätsprobleme aufgeführt, die in .NET Framework 4.7, 4.7.1 und 4.7.2 auftreten.
.NET Framework 4.7
JIT
Falsche Codegenerierung bei der Übergabe und dem Vergleich von UInt16-Werten
Details
Aufgrund von Änderungen, die in .NET Framework 4.7 eingeführt wurden, vergleicht der Code, der vom JIT-Compiler generiert wird, in Anwendungen, die unter .NET Framework 4.7 ausgeführt werden, manchmal zwei T:System.UInt16
-Werte fehlerhaft miteinander. Weitere Informationen finden Sie unter Issue #11508: Silent bad codegen when passing and comparing ushort args (Problem #11508: Lautlose, ungültige Codegenerierung beim Übergeben und Vergleichen von ushort-Argumenten) unter GitHub.com.
Vorschlag
Wenn Sie beim Vergleichen von unsignierten 16-Bit-Werten in .NET Framework 4.7 auf ein Problem stoßen, führen Sie ein Upgrade auf .NET Framework 4.7.1 aus.
Name | Wert |
---|---|
Bereich | Microsoft Edge |
Version | 4.7 |
Typ | Laufzeit |
Betroffene APIs
Nicht über API-Analyse erkennbar.
Windows Presentation Foundation (WPF)
Selektor stürzt ab, wenn ein Element aus einer benutzerdefinierten INCC-Sammlung entfernt wird
Details
T:System.InvalidOperationException
kann in folgendem Szenario auftreten:
- Das ItemsSource-Element für
T:System.Windows.Controls.Primitives.Selector
ist eine Sammlung mit einer benutzerdefinierten Implementierung vonT:System.Collections.Specialized.INotifyCollectionChanged
. - Das ausgewählte Element wird aus der Sammlung entfernt.
T:System.Collections.Specialized.NotifyCollectionChangedEventArgs
weist den WertP:System.Collections.Specialized.NotifyCollectionChangedEventArgs.OldStartingIndex
=–1 auf, der eine unbekannte Position angibt.
Die Aufrufliste der Ausnahme beginnt at System.Windows.Threading.Dispatcher.VerifyAccess() at System.Windows.DependencyObject.GetValue(DependencyProperty dp) at System.Windows.Controls.Primitives.Selector.GetIsSelected(DependencyObject element)
. Diese Ausnahme kann in .NET Framework 4.5 auftreten, wenn die Anwendung über mehrere Dispatcher-Threads verfügt. In .NET Framework 4.7 kann diese Ausnahme auch bei Anwendungen mit einem einzelnen Dispatcher-Thread ausgelöst werden.
Dieses Problem wurde in .NET Framework 4.7.1 behoben.
Vorschlag
Upgrade auf .NET Framework 4.7.1
Name | Wert |
---|---|
Bereich | Gering |
Version | 4.7 |
Typ | Laufzeit |
Betroffene APIs
Nicht über API-Analyse erkennbar.
DataGridCellsPanel.BringIndexIntoView löst ArgumentOutOfRangeException aus
Details
ScrollIntoView(Object) wird asynchron ausgeführt, wenn die Spaltenvirtualisierung zwar aktiviert ist, die Spaltenbreiten aber noch nicht festgelegt wurden. Wenn Spalten entfernt werden, bevor der asynchrone Vorgang abgeschlossen ist, kann eine System.ArgumentOutOfRangeException-Ausnahme auftreten.
Vorschlag
Führen Sie eine der folgenden Aktionen aus:
- Upgrade auf .NET Framework 4.7
- Den neuesten Wartungspatch für .NET Framework 4.6.2 installieren
- Entfernen Sie Spalten erst, wenn die asynchrone Antwort auf die ScrollIntoView(Object) abgeschlossen wurde.
Name | Wert |
---|---|
Bereich | Microsoft Edge |
Version | 4.6.2 |
Typ | Laufzeit |
Betroffene APIs
Von der WPF-Rechtschreibprüfung ausgelöste ObjectDisposedException-Ausnahme
Details
WPF-Anwendungen stürzen beim Beenden der Anwendung gelegentlich ab. Dabei löst die Rechtschreibprüfung die Ausnahme System.ObjectDisposedException aus. Dies wurde in WPF für .NET Framework 4.7 behoben, indem die Ausnahme ordnungsgemäß verarbeitet wird. Dadurch wird sichergestellt, dass die Anwendungen nicht mehr beeinträchtigt werden. Es ist zu beachten, dass auch weiterhin gelegentlich nicht abgefangene Ausnahmen bei Anwendungen auftreten, die unter einem Debugger ausgeführt werden.
Vorschlag
Upgrade auf .NET Framework 4.7
name | Wert |
---|---|
Bereich | Microsoft Edge |
Version | 4.6.1 |
Typ | Laufzeit |
Betroffene APIs
Nicht über API-Analyse erkennbar.
Das Ändern der Rastergröße kann dazu führen, dass eine Anwendung nicht mehr reagiert.
Details
Beim Anpassen des Layouts eines T:System.Windows.Controls.Grid
-Rasters kann in den folgenden Situationen eine Endlosschleife entstehen:
- Die Zeilendefinitionen enthalten zwei *-Zeilen, die jeweils einen MinHeight- und einen MaxHeight-Wert angeben.
- Der Inhalt der *-Zeilen übersteigt den entsprechenden MaxHeight-Wert nicht.
- Die verfügbare Höhe des Rasters wird durch den ersten MinHeight-Wert (und alle anderen festen oder automatischen Zeilen) überschritten.
- Die App ist auf .NET Framework 4.7 ausgelegt oder aktiviert den Zuweisungsalgorithmus von Version 4.7 durch Festlegen von
Switch.System.Windows.Controls.Grid.StarDefinitionsCanExceedAvailableSpace=false
.
Eine Endlosschleife würde auch entstehen, wenn es mehr als zwei Zeilen oder Spalten gäbe. Dieses Problem wurde in .NET Framework 4.7.1 behoben.
Vorschlag
Upgrade auf .NET Framework 4.7.1 Wenn Sie hingegen den .NET 4.7-Zuweisungsalgorithmus nicht benötigen, können Sie auch die folgenden Konfigurationseinstellungen verwenden:
<runtime>
<AppContextSwitchOverrides value="Switch.System.Windows.Controls.Grid.StarDefinitionsCanExceedAvailableSpace=true" />
</runtime>
Name | Wert |
---|---|
Bereich | Microsoft Edge |
Version | 4.7 |
Typ | Laufzeit |
Betroffene APIs
Nicht über API-Analyse erkennbar.
In lokalisierten Builds ist der RibbonGroup-Hintergrund auf transparent festgelegt
Details
Der System.Windows.Controls.Ribbon.RibbonGroup-Hintergrund wurde in lokalisierten Builds stets mit einem Pinsel für Transparenzeffekte gezeichnet, was zu einer wenig ansprechenden Benutzeroberfläche führte. Dieses Problem wurde in der .NET Framework 4.7 WPF-Fehlerbehebung behoben, indem die lokalisierten Ressourcen für System.Windows.Controls.Ribbon.RibbonGroup aktualisiert wurden, wodurch sichergestellt wird, dass der richtige Pinsel ausgewählt wird.
Vorschlag
Upgrade auf .NET Framework 4.7
name | Wert |
---|---|
Bereich | Microsoft Edge |
Version | 4.6.2 |
Typ | Laufzeit |
Betroffene APIs
Nicht über API-Analyse erkennbar.
Update für WPF-Druckstapel
Details
Die Druck-APIs von WPF, die System.Printing.PrintQueue verwenden, rufen nun die Paket-API von Windows zum Drucken von Dokumenten statt der veralteten XPS-Druck-API auf. Diese Änderung wurde für die Wartbarkeit durchgeführt. Weder für Benutzer noch für Entwickler sollten Änderungen im Verhalten oder der API-Nutzung sichtbar werden. Der neue Druckstapel wird bei der Ausführung unter Windows 10 Creators Update standardmäßig aktiviert. Der alte Druckstapel funktioniert in älteren Windows-Versionen weiterhin wie zuvor.
Vorschlag
Legen Sie den UseXpsOMPrinting
-REG_DWORD-Wert des HKEY_CURRENT_USER\Software\Microsoft\.NETFramework\Windows Presentation Foundation\Printing
-Registrierungsschlüssels auf 1
fest, um den alten Stapel in Windows 10 Creators Update zu verwenden.
Name | Wert |
---|---|
Bereich | Microsoft Edge |
Version | 4.7 |
Typ | Laufzeit |
Betroffene APIs
Nicht über API-Analyse erkennbar.
Windows Workflow Foundation (WF)
Der Workflow löst jetzt anstelle einer NullReferenceException teilweise eine ursprüngliche Ausnahme aus
Details
In .NET Framework 4.6.2 und früheren Versionen löst die System.Activities-Workflowruntime eine null
aus, wenn die Execute-Methode einer Workflowaktivität eine Ausnahme mit einem Message-Wert für die System.NullReferenceException-Eigenschaft auslöst, wodurch die ursprüngliche Ausnahme maskiert wird. In .NET Framework 4.7 wird die zuvor maskierte Ausnahme ausgelöst.
Vorschlag
Wenn Ihr Code von der Verarbeitung von System.NullReferenceException abhängig ist, ändern Sie diesen, um die Ausnahmen zu erfassen, die Ihre benutzerdefinierten Aktivitäten auslösen könnten.
Name | Wert |
---|---|
Bereich | Gering |
Version | 4.7 |
Typ | Laufzeit |
Betroffene APIs
- CodeActivity.Execute(CodeActivityContext)
- AsyncCodeActivity.BeginExecute(AsyncCodeActivityContext, AsyncCallback, Object)
- AsyncCodeActivity<TResult>.BeginExecute(AsyncCodeActivityContext, AsyncCallback, Object)
- WorkflowInvoker.Invoke()
Über die SQL-Workflowpersistenz werden Primärschlüsselcluster hinzugefügt und NULL-Werte in einigen Spalten nicht zugelassen
Details
Ab .NET Framework 4.7 verwenden die vom SqlWorkflowInstanceStoreSchema.sql-Skript erstellten Tabellen für SQL Workflow Instance Store (SWIS) Primärschlüsselcluster. Aus diesem Grund unterstützen Identitäten keine null
-Werte. Diese Änderung hat keine Auswirkungen auf SWIS. Die Updates wurden erstellt, um die Transaktionsreplikation mit SQL Server zu unterstützen.
Vorschlag
Die SQL-Datei „SqlWorkflowInstanceStoreSchemaUpgrade.sql“ muss auf bereits vorgenommene Installationen angewendet werden, damit diese Änderung vorgenommen wird. Bei neuen Datenbankinstallationen werden die Änderungen automatisch vorgenommen.
Name | Wert |
---|---|
Bereich | Microsoft Edge |
Version | 4.7 |
Typ | Laufzeit |
Betroffene APIs
Nicht über API-Analyse erkennbar.
.NET Framework 4.7.1
JIT
Falsche Codegenerierung bei der Übergabe und dem Vergleich von UInt16-Werten
Details
Aufgrund von Änderungen, die in .NET Framework 4.7 eingeführt wurden, vergleicht der Code, der vom JIT-Compiler generiert wird, in Anwendungen, die unter .NET Framework 4.7 ausgeführt werden, manchmal zwei T:System.UInt16
-Werte fehlerhaft miteinander. Weitere Informationen finden Sie unter Issue #11508: Silent bad codegen when passing and comparing ushort args (Problem #11508: Lautlose, ungültige Codegenerierung beim Übergeben und Vergleichen von ushort-Argumenten) unter GitHub.com.
Vorschlag
Wenn Sie beim Vergleichen von unsignierten 16-Bit-Werten in .NET Framework 4.7 auf ein Problem stoßen, führen Sie ein Upgrade auf .NET Framework 4.7.1 aus.
Name | Wert |
---|---|
Bereich | Microsoft Edge |
Version | 4.7 |
Typ | Laufzeit |
Betroffene APIs
Nicht über API-Analyse erkennbar.
Sicherheit
„RSACng“ und „DSACng“ sind in Szenarios mit teilweiser Vertrauenswürdigkeit wieder verwendbar
Details
CngLightup (das in einigen Krypto-APIs auf höherer Ebene verwendet wird, z.B. System.Security.Cryptography.Xml.EncryptedXml) und System.Security.Cryptography.RSACng erfordern in einigen Fällen volles Vertrauen. Dazu zählen P/Invoke-Aufrufe ohne gewährte SecurityPermissionFlag.UnmanagedCode-Berechtigungen sowie Codepfade, bei denen System.Security.Cryptography.CngKey eine Berechtigungsanforderung für SecurityPermissionFlag.UnmanagedCode aufweist. Ab .NET Framework 4.6.2 wurde „CngLightup“ verwendet, um nach Möglichkeit zu System.Security.Cryptography.RSACng zu wechseln. In Folge schlugen teilweise vertrauenswürdige Apps fehl, die System.Security.Cryptography.Xml.EncryptedXml erfolgreich verwendeten, und lösten SecurityException-Ausnahmen aus. Durch diese Änderungen werden die erforderlichen Berechtigungen hinzugefügt, sodass alle Funktionen, die „CngLightup“ verwenden, über die erforderlichen Berechtigungen verfügen.
Vorschlag
Wenn diese Änderung in .NET Framework 4.6.2 sich negativ auf Ihre teilweise vertrauenswürdigen Apps ausgewirkt hat, führen Sie ein Upgrade auf .NET Framework 4.7.1 durch.
Name | Wert |
---|---|
Bereich | Microsoft Edge |
Version | 4.6.2 |
Typ | Laufzeit |
Betroffene APIs
- DSACng(CngKey)
- DSACng.Key
- DSACng.LegalKeySizes
- DSACng.CreateSignature(Byte[])
- DSACng.VerifySignature(Byte[], Byte[])
- RSACng(CngKey)
- RSACng.Key
- RSACng.Decrypt(Byte[], RSAEncryptionPadding)
- RSACng.SignHash(Byte[], HashAlgorithmName, RSASignaturePadding)
Windows Communication Foundation (WCF)
Der WCF-Konstruktor AddressHeaderCollection löst jetzt eine ArgumentException aus, wenn ein addressHeader-Element den Wert NULL aufweist
Details
Ab .NET Framework 4.7.1 löst der AddressHeaderCollection(IEnumerable<AddressHeader>)-Konstruktor eine ArgumentException aus, wenn ein Element den Wert null
aufweist. In .NET Framework 4.7 und früheren Versionen wird keine Ausnahme ausgelöst.
Vorschlag
Wenn Kompatibilitätsprobleme durch diese Änderung an .NET Framework 4.7.1 oder höher auftreten, können Sie diese deaktivieren, indem Sie folgende Zeile zum Abschnitt <runtime>
Ihrer Datei „App.config“ hinzufügen:
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.ServiceModel.DisableAddressHeaderCollectionValidation=true" />
</runtime>
</configuration>
name | Wert |
---|---|
Bereich | Gering |
Version | 4.7.1 |
Typ | Laufzeit |
Betroffene APIs
Der WCF-Standardwert MsmqSecureHashAlgorithm ist jetzt SHA256
Details
Ab .NET Framework 4.7.1 ist SHA256 der Standardalgorithmus zum Signieren von Msmq-Nachrichten in WCF. In .NET Framework 4.7 und früheren Versionen ist SHA1 der Standardalgorithmus zum Signieren von Nachrichten.
Vorschlag
Wenn Kompatibilitätsprobleme durch diese Änderung an .NET Framework 4.7.1 oder höher auftreten, können Sie diese beseitigen, indem Sie folgende Zeile zum Abschnitt <runtime>
Ihrer app.config-Datei hinzufügen:
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.ServiceModel.UseSha1InMsmqEncryptionAlgorithm=true" />
</runtime>
</configuration>
name | Wert |
---|---|
Bereich | Gering |
Version | 4.7.1 |
Typ | Laufzeit |
Betroffene APIs
Nicht über API-Analyse erkennbar.
Die PipeConnection.GetHashAlgorithm-Methode von WCF verwendet nun SHA256
Details
Ab .NET Framework 4.7.1 verwendet Windows Communication Foundation einen SHA256-Hash, um zufällige Namen für Named Pipes zu generieren. In .NET Framework 4.7 und früheren Versionen wurde ein SHA1-Hash verwendet.
Vorschlag
Wenn Kompatibilitätsprobleme durch diese Änderung an .NET Framework 4.7.1 oder höher auftreten, können Sie diese deaktivieren, indem Sie folgende Zeile zum Abschnitt <runtime>
Ihrer App.config-Datei hinzufügen:
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.ServiceModel.UseSha1InPipeConnectionGetHashAlgorithm=true" />
</runtime>
</configuration>
name | Wert |
---|---|
Bereich | Gering |
Version | 4.7.1 |
Typ | Laufzeit |
Betroffene APIs
Nicht über API-Analyse erkennbar.
Windows Presentation Foundation (WPF)
Verkettete Popups mit „StaysOpen=FALSE“
Details
Ein Popup mit „StaysOpen=FALSE“ sollte geschlossen werden, wenn Sie außerhalb des Popups klicken. Wenn zwei oder mehr Popups verkettet sind (d.h. ein Popup enthält ein anderes), treten viele Probleme auf, unter anderem folgende:
- Öffnen Sie zwei Ebenen. Klicken Sie außerhalb von P2, aber innerhalb von P1. Es geschieht nichts.
- Öffnen Sie zwei Ebenen. Klicken Sie außerhalb von P1. Beide Popups werden geschlossen.
- Öffnen und schließen Sie zwei Ebenen. Versuchen Sie dann, P2 erneut zu öffnen. Es geschieht nichts.
- Versuchen Sie, drei Ebenen zu öffnen. Dies ist nicht möglich. (Je nachdem, wo Sie klicken, geschieht entweder nichts oder die ersten zwei Ebenen werden geschlossen.)
Diese Fälle (und andere Varianten) funktionieren nun wie erwartet.
Name | Wert |
---|---|
Bereich | Microsoft Edge |
Version | 4.7.1 |
Typ | Laufzeit |
Betroffene APIs
Selektor stürzt ab, wenn ein Element aus einer benutzerdefinierten INCC-Sammlung entfernt wird
Details
T:System.InvalidOperationException
kann in folgendem Szenario auftreten:
- Das ItemsSource-Element für
T:System.Windows.Controls.Primitives.Selector
ist eine Sammlung mit einer benutzerdefinierten Implementierung vonT:System.Collections.Specialized.INotifyCollectionChanged
. - Das ausgewählte Element wird aus der Sammlung entfernt.
T:System.Collections.Specialized.NotifyCollectionChangedEventArgs
weist den WertP:System.Collections.Specialized.NotifyCollectionChangedEventArgs.OldStartingIndex
=–1 auf, der eine unbekannte Position angibt.
Die Aufrufliste der Ausnahme beginnt at System.Windows.Threading.Dispatcher.VerifyAccess() at System.Windows.DependencyObject.GetValue(DependencyProperty dp) at System.Windows.Controls.Primitives.Selector.GetIsSelected(DependencyObject element)
. Diese Ausnahme kann in .NET Framework 4.5 auftreten, wenn die Anwendung über mehrere Dispatcher-Threads verfügt. In .NET Framework 4.7 kann diese Ausnahme auch bei Anwendungen mit einem einzelnen Dispatcher-Thread ausgelöst werden.
Dieses Problem wurde in .NET Framework 4.7.1 behoben.
Vorschlag
Upgrade auf .NET Framework 4.7.1
Name | Wert |
---|---|
Bereich | Gering |
Version | 4.7 |
Typ | Laufzeit |
Betroffene APIs
Nicht über API-Analyse erkennbar.
Das Ändern der Rastergröße kann dazu führen, dass eine Anwendung nicht mehr reagiert.
Details
Beim Anpassen des Layouts eines T:System.Windows.Controls.Grid
-Rasters kann in den folgenden Situationen eine Endlosschleife entstehen:
- Die Zeilendefinitionen enthalten zwei *-Zeilen, die jeweils einen MinHeight- und einen MaxHeight-Wert angeben.
- Der Inhalt der *-Zeilen übersteigt den entsprechenden MaxHeight-Wert nicht.
- Die verfügbare Höhe des Rasters wird durch den ersten MinHeight-Wert (und alle anderen festen oder automatischen Zeilen) überschritten.
- Die App ist auf .NET Framework 4.7 ausgelegt oder aktiviert den Zuweisungsalgorithmus von Version 4.7 durch Festlegen von
Switch.System.Windows.Controls.Grid.StarDefinitionsCanExceedAvailableSpace=false
.
Eine Endlosschleife würde auch entstehen, wenn es mehr als zwei Zeilen oder Spalten gäbe. Dieses Problem wurde in .NET Framework 4.7.1 behoben.
Vorschlag
Upgrade auf .NET Framework 4.7.1 Wenn Sie hingegen den .NET 4.7-Zuweisungsalgorithmus nicht benötigen, können Sie auch die folgenden Konfigurationseinstellungen verwenden:
<runtime>
<AppContextSwitchOverrides value="Switch.System.Windows.Controls.Grid.StarDefinitionsCanExceedAvailableSpace=true" />
</runtime>
Name | Wert |
---|---|
Bereich | Microsoft Edge |
Version | 4.7 |
Typ | Laufzeit |
Betroffene APIs
Nicht über API-Analyse erkennbar.
.NET Framework 4.7.2
Kernspeicher
Zulassen von Unicode in URIs, die UNC-Freigaben ähneln
Details
In System.Uri führt das Erstellen eines Datei-URI, der sowohl einen UNC-Freigabenamen als auch Unicode-Zeichen enthält, nicht mehr zu einem URI mit ungültigem internen Status. Das Verhalten ändert sich erst, wenn alle folgenden Punkte erfüllt sind:
- Der URI hat das Schema
file:
, auf das vier oder mehr Schrägstriche folgen. - Der Hostname beginnt mit einem Unterstrich oder anderem nicht reservierten Symbol.
- Der URI enthält Unicode-Zeichen.
Vorschlag
Anwendungen, die mit URIs arbeiten, die durchgängig Unicode enthalten, hätten dieses Verhalten möglicherweise nutzen können, um Verweise auf UNC-Freigaben zu unterbinden. Diese Anwendungen sollten stattdessen IsUnc verwenden.
name | Wert |
---|---|
Bereich | Microsoft Edge |
Version | 4.7.2 |
Typ | Laufzeit |
Betroffene APIs
Unterstützen einer besonderen relativen URI-Notation, wenn Unicode vorhanden ist
Details
Uri löst keine NullReferenceException mehr aus, wenn TryCreate für bestimmte relative URIs, die Unicode enthalten, aufgerufen wird. Am einfachsten können Sie die NullReferenceException mit dem folgenden Code selbst nachvollziehen. Beide Anweisungen sind gleichwertig:
bool success = Uri.TryCreate("http:%C3%A8", UriKind.RelativeOrAbsolute, out Uri href);
bool success = Uri.TryCreate("http:è", UriKind.RelativeOrAbsolute, out Uri href);
Zum Reproduzieren der NullReferenceException müssen die folgenden Punkte zutreffen:
- Der URI muss als relativ angegeben werden, indem ihm „http:“ vorangestellt wird, anstatt dass „//“ auf ihn folgt.
- Die URI muss als Prozentwert codiertes Unicode oder nicht reservierte Symbole enthalten.
Vorschlag
Benutzer, die zum Unterbinden relativer URIs von diesem Verhalten abhängig sind, sollten stattdessen beim Erstellen eines URI UriKind.Absolute angeben.
name | Wert |
---|---|
Bereich | Microsoft Edge |
Version | 4.7.2 |
Typ | Laufzeit |
Betroffene APIs
Laufzeit
Verbesserte WCF-Zertifikatkettenüberprüfung für die Net.Tcp-Zertifikatauthentifizierung
Details
.NET Framework 4.7.2 verbessert die Zertifikatkettenüberprüfung, wenn Zertifikatauthentifizierung mit Transportsicherheit mit WCF verwendet wird. Durch diese Verbesserung müssen Clientzertifikate, die verwendet werden, um die Authentifizierung mit einem Server auszuführen, für Clientauthentifizierung konfiguriert werden. Entsprechend müssen auch Serverzertifikate, die zur Authentifizierung eines Servers dienen, für Serverauthentifizierung konfiguriert werden. Wenn das Stammzertifikat deaktiviert ist, schlägt die Überprüfung der Zertifikatkette aufgrund dieser Änderung fehl. Für .NET Framework 3.5 und höhere Versionen wurde über das Windows-Sicherheitsrollup die gleiche Änderung vorgenommen. Weitere Informationen finden Sie hier. Diese Änderung ist standardmäßig aktiviert und kann durch eine Konfigurationseinstellung deaktiviert werden.
Vorschlag
Überprüfen Sie, ob Ihre Server- und Clientzertifizierung über die erforderliche EKU-OID verfügt. Wenn dies nicht der Fall ist, aktualisieren Sie Ihre Zertifizierung.
Überprüfen Sie, ob Ihr Stammzertifikat ungültig ist. Wenn dies der Fall ist, aktualisieren Sie das Stammzertifikat.
Wenn Sie das Zertifikat nicht aktualisieren können, können Sie diesen Breaking Change vorübergehend mit der folgenden Konfigurationseinstellung umgehen. Wenn Sie sich jedoch gegen die Änderung entscheiden, bleibt Ihr System anfällig für das Sicherheitsproblem.
<appSettings> <add key="wcf:useLegacyCertificateUsagePolicy" value="true" /> </appSettings>
Name | Wert |
---|---|
Bereich | Gering |
Version | 4.7.2 |
Typ | Laufzeit |
Betroffene APIs
Nicht über API-Analyse erkennbar.
Webanwendungen
Die App-Einstellung „dataAnnotations:dataTypeAttribute:disableRegEx“ ist in .NET Framework 4.7.2 standardmäßig aktiviert.
Details
In .NET Framework 4.6.1 wurde die App-Einstellung dataAnnotations:dataTypeAttribute:disableRegEx
eingeführt, mir der Benutzer die Verwendung regulärer Ausdrücke in Datentypattributen (z.B. System.ComponentModel.DataAnnotations.EmailAddressAttribute, System.ComponentModel.DataAnnotations.UrlAttribute und System.ComponentModel.DataAnnotations.PhoneAttribute) deaktivieren können. So können Sicherheitsrisiken wie mögliche Denial-of-Service-Angriffe mit bestimmten regulären Ausdrücken gesenkt werden.
In .NET Framework 4.6.1 war diese App-Einstellung zur Verwendung von regulären Ausdrücken standardmäßig auf false
festgelegt. Ab .NET Framework 4.7.2 ist dieser Konfigurationsparameter standardmäßig auf true
festgelegt, um Sicherheitsrisiken für Webanwendungen für .NET Framework 4.7.2 und höher weiter zu senken.
Vorschlag
Wenn regulärer Ausdrücke in Ihrer Webanwendung nach dem Upgrade auf .NET Framework 4.7.2 nicht mehr funktionieren, können Sie den Wert der Einstellung dataAnnotations:dataTypeAttribute:disableRegEx
in false
ändern, um wieder das alte Verhalten zu verwenden.
<configuration>
<appSettings>
...
<add key="dataAnnotations:dataTypeAttribute:disableRegEx" value="false"/>
...
</appSettings>
</configuration>
name | Wert |
---|---|
Bereich | Gering |
Version | 4.7.2 |
Typ | Laufzeit |
Betroffene APIs
Nicht über API-Analyse erkennbar.
Windows Presentation Foundation (WPF)
Besseres KeyTips-Verhalten in WPF
Details
Das Keytips-Verhalten wurde so geändert, dass es dem Verhalten von Microsoft Word und Windows Explorer entspricht. Indem überprüft wird, ob der Keytip-Status aktiviert ist oder nicht, wenn SystemKey (insbesondere Key oder F11) gedrückt wird, behandelt WPF die Keytip-Tasten entsprechend. Keytips verwerfen nun ein Menü, auch wenn es mit der Maus geöffnet wird.
Vorschlag
Nicht zutreffend
name | Wert |
---|---|
Bereich | Microsoft Edge |
Version | 4.7.2 |
Typ | Laufzeit |
Betroffene APIs
Nicht über API-Analyse erkennbar.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für