Случайное «System.Text.DecoderFallbackException» с Entity Framework - PullRequest
0 голосов
/ 10 октября 2018

После создания приложения WinForms с использованием EF 6.0 с базой данных сначала я получаю следующие ошибки случайным образом при первом запуске приложения.Большую часть времени перезапуск приложения решает проблему.

'System.Text.DecoderFallbackException' в mscorlib.dll Die Bytes [E9] im Index 5974 Кодовая страница в кодировке Unicode übersetzt Unicode nicht von der angegebenenВерден.(Байты [E9] с индексом 5974 не могут быть переведены из данной кодовой страницы в Unicode)

'System.Xml.XmlException' в System.Xml.dll Ungültiges Zeichen in der angegebenen Codierung.Zeile 5337, позиция 50. (Недопустимый символ в кодовой странице. Строка 5337, позиция 50)

'System.Data.Entity.Core.MetadataException' в указанной схеме EntityFramework.dll недопустима.Ошибки: DataAccess.AppName.AppName.ssdl (5337,50): ошибка 0005: Ungültiges Zeichen in der angegebenen Codierung.Zeile 5337, позиция 50. (Недопустимый символ в кодовой странице. Строка 5337, позиция 50)

Это происходит только, но не всегда, при первом запуске приложения.Кажется, нет никакой логики за ошибкой.Я могу сделать 20 сборок, не получая этих исключений, и в некоторые дни я просто делаю одну, и приложение показывает эти сообщения об ошибках, и его необходимо перезапустить, потому что метаданные для EF не загружены.

Я проверил AppName.ssdlфайл в папке obj в папке предоставления:

<AssociationSet Name="FK_Folio_EST_Schaetzperioden" Association="Self.FK_Folio_EST_Schaetzperioden"> 

В строке нет необычного символа.Позиция 50 - это r.

Приложение построено на framework 4.51, x86, EF 6.1.3.

Мне удалось отследить проблему до

System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoaderResource.LoadResource 

, которая использует GetManifestResourceStream.

Это приводит к Encodeing error

с перерывами.

Есть идеи?

...