Improve handling of various non-serializable Exception situations #602
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There were a few issues:
[Serializable]
attribute. Now we log a warning and just write outCommonErrorData
.AssemblyName
as a property of the exception.From
load context it still wouldn't be found. That's still the case with this change, but if the assembly name is specified we'll load it into theFrom
context automatically, assuming the CLR can find it.From
context, if the assembly version of the transmitting side exceeded the assembly version on the receiving side, it wouldn't load properly. Now we fallback to allow an assembly version mismatch (provided the name and public key token still match). We further fallback to any (loaded) assembly that defines a type with a matching full name.Fixes #588
See also DevDiv-1240018, #468