Azure / Azure/durabletask

DT.AzureStorage: netstandard2.0 message format is not backwards compatible with net462

Offen
#877 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
C#
Sterne
1.7k
Forks
335
Ø Merge
2 T. 23 Std.
Gemergte PRs (30 T.)
6

Beschreibung

### Description
Upgrading an existing app from .NET Framework to .NET Core or higher may cause existing orchestrations to get stuck due to message serialization compatibility issues.

Related: https://stackoverflow.com/questions/50190568/net-standard-4-7-1-could-not-load-system-private-corelib-during-serialization

New extensibility may be required to help mitigate this problem for users that need to migrate from .NET Framework to modern .NET versions.

### Expected behavior
Switching from .NET Framework to a newer version, like .NET 6, ideally should be safe and not require any special interventions.

### Actual behavior
Changes in the assembly name for primitive types like `Int32` and `String` from .NET Framework to .NET Core unfortunately result in deserialization problems because of the JSON settings used by DT.AzureStorage.

Example:
![image](https://user-images.githubusercontent.com/2704139/227653406-8a456537-3302-4ac0-9cec-43b3c48a8d7c.png)

### Known workarounds
Implement a custom type binder, which is a new feature introduced [here](https://github.com/Azure/durabletask/pull/878). The test code in the PR shows how this specific problem can be mitigated.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Start with the custom type binder and test code referenced in PR #878, then compare the JSON settings used by DT.AzureStorage for netstandard2.0 and net462. Done means an orchestration created on .NET Framework can be deserialized after migration to a modern .NET version without requiring a special user intervention.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
azure, csharp, json
Bereich
backend, cloud
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.