System.InvalidProgramException: Common Language Runtime обнаружил недопустимую программу - PullRequest
0 голосов
/ 28 июня 2018

Все,

Я использую ZeroFormatter для сериализации большого объекта, иногда он выдает следующую ошибку при сериализации ошибки, эта проблема наблюдается после использования для наследования концепции Union ZeroFormatter.

Вот подробности исключения:

System.InvalidProgramException: Common Language Runtime обнаружил недопустимую программу.
в ZeroFormatter.DynamicObjectSegments.ZeroFormatter_Formatters_DefaultResolver.Colibrium.Common.Ontology.Rating.Factors.RateFactor $ Formatter.Serialize (Byte [] &, Int32, RateFactor)
в ZeroFormatter.Formatters.CollectionFormatter 3.Serialize(Byte[]& bytes, Int32 offset, TCollection value)<br> at ZeroFormatter.DynamicObjectSegments.ZeroFormatter_Formatters_DefaultResolver.Colibrium.Common.Ontology.Rating.RateClass$Formatter.Serialize(Byte[]& , Int32 , RateClass )<br> at ZeroFormatter.Formatters.CollectionFormatter 3.Serialize (байты [] и байты, смещение Int32, значение TCollection)
в ZeroFormatter.DynamicObjectSegments.ZeroFormatter_Formatters_DefaultResolver.Colibrium.Common.Ontology.Rating.PackagePlan $ Formatter.Serialize (Byte [] &, Int32, PackagePlan)
в ZeroFormatter.Formatters.CollectionFormatter 3.Serialize(Byte[]& bytes, Int32 offset, TCollection value)<br> at ZeroFormatter.DynamicObjectSegments.ZeroFormatter_Formatters_DefaultResolver.Colibrium.Common.Ontology.Rating.Package$Formatter.Serialize(Byte[]& , Int32 , Package )<br> at ZeroFormatter.Formatters.CollectionFormatter 3.Serialize (байты [] и байты, смещение Int32, значение TCollection)
в ZeroFormatter.DynamicObjectSegments.ZeroFormatter_Formatters_DefaultResolver.Colibrium.Common.Ontology.Rating.PackageGroup $ Formatter.Serialize (Byte [] &, Int32, PackageGroup)
в ZeroFormatter.Formatters.CollectionFormatter 3.Serialize(Byte[]& bytes, Int32 offset, TCollection value)<br> at ZeroFormatter.DynamicObjectSegments.ZeroFormatter_Formatters_DefaultResolver.Colibrium.Common.Ontology.Rating.Group.GroupRatingResults$Formatter.Serialize(Byte[]& , Int32 , GroupRatingResults )<br> at ZeroFormatter.ZeroFormatterSerializer.CustomSerializer 1. Сериализация [T] (T obj)
в Colibrium.Utility.Library.ObjectConverter`1.ConvertO bjectToBinaryZeroFormatter (T p_object)

в C: \ TFS \ UPMC \ Repos \ Colibrium.Utility.Library \ ObjectConverter.cs: строка 407

Ответы [ 2 ]

0 голосов
/ 07 января 2019

В случае использования Application Insights может возникнуть исключение из-за проблемы 18323, сообщенной .Net Core CRL

О проблеме сообщается в ядре .Net, но я также сообщил о ней в .Net Framework из-за решения, которое, похоже, работает и там.

ApplicationInsights перешел к модели предустановленного расширения сайта и больше не имеет битов-нарушителей. Кроме того, частное расширение сайта не будет обновляться, так как оно считается устаревшим в течение месяца. Вы должны иметь возможность выполнить обновление до предварительно установленного расширения сайта с помощью конфигурации ApplicationInsights в блейде AppService в Azure.

Однако, если вы хотите немедленное решение для расширения частного сайта, вы можете обойти эту проблему, удалив следующие два файла в расширении сайта и перезапустив сайт:

  • Instrumentation32 \ ProductionBreakpoints_x86.config
  • Instrumentation64 \ ProductionBreakpoints_x64.config

Это эффективно удалит часть расширения AppInsights, вызывающую проблемы.

0 голосов
/ 01 июля 2018

Глядя на исходный код DynamicFormatter , кажется, что библиотека пытается оптимизировать форматирование ваших пользовательских типов, генерируя типы CLR во время выполнения для сериализации / десериализации пользовательского типа в байтовый массив. Судя по ошибке, в этом поколении IL должна быть ошибка.

Вы должны сообщить об этой проблеме в проблемах проекта ZeroFormatter , но учтите, что вам, вероятно, понадобится хороший способ воспроизвести эту проблему, так как отслеживание InvalidProgramException очень сложно.

...