Случайные исключения SQL с SQL Server 2019 и Entity Framework 6.4.4/6.5.1C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Случайные исключения SQL с SQL Server 2019 и Entity Framework 6.4.4/6.5.1

Сообщение Anonymous »

У меня возникают случайные спорадические исключения SQL в нашей производственной среде с использованием SQL Server 2019 с Entity Framework 6.4.4. Наша установка работала стабильно в течение многих лет, но в последнее время запросы начали давать сбой через непредсказуемые промежутки времени со странными ошибками.
Примеры исключений:
Ошибка 1:

System.Data.SqlClient.SqlException:
Неверный синтаксис рядом с «0x1cf2». Неправильный синтаксис рядом с ключевым словом AS.
Неправильный синтаксис рядом с ключевым словом ORDER.

Ошибка 2:

System.Data.SqlClient.SqlException:
Неправильный входящий поток протокола потока табличных данных (TDS).
Параметр 2 (''): тип данных 0x00 неизвестен. .

Ошибка 3:

System.Data.SqlClient.SqlException:F鑎평........................椀氀琀攀爀㈀崀⸀嬀䤀猀琀䜀攀眀甀攀爀稀愀渀眀攀渀最匀琀攀氀氀瀀氀愀
... — недопустимое имя, поскольку оно содержит NULL-символ или недопустимый символ Юникода.

Примечание к ошибке 3: я не смог включить в вопрос весь текст этой конкретной ошибки, потому что StackOverflow пожаловался бы на возможную попытку рассылки спама, если бы я это сделал. Но самое главное, там много нежелательных неанглийских символов.
Окружающая среда и конфигурация:
  • База данных: один экземпляр SQL Server 2019 с одной центральной базой данных. Регулярно поддерживается с помощью резервного копирования и обновлений индекса/статистики.
  • ORM: Entity Framework 6.4.4 с использованием System.Data.SqlClient.
  • Приложение: .NET Framework 4.8, MVC 5. Монолитный, устаревший
Что я пробовал до сих пор:
Обновления драйверов и библиотек: мы обновили Entity Framework до версии 6.5.1, и я изменил приложение на использование Microsoft.Data.SqlClient вместо System.Data.SqlClient .
Но это не помогло. Ошибки по-прежнему появляются случайным образом.
На данный момент я определил 24 места в нашей базе кода, где возникает ошибка. Но, похоже, у них нет ничего общего. Помимо того факта, что все они имеют доступ для чтения к базе данных; не пишет.
Я также подумал о текстовых переменных, которые используются для создания запросов. Но ни один из запросов не использует текст для фильтрации или упорядочивания результатов.
Я попытался воспроизвести их в контролируемой локальной среде. Но сделать это не удалось. Я пробовал это с локальной базой данных, но также пытался подключиться к нашей производственной базе данных. Мне так и не удалось воспроизвести ошибки.
Сейчас я в тупике. Я не знаю, где искать и что делать, чтобы воспроизвести ошибки и устранить их.
Мой вопрос:
  • Какие возможные причины могут привести к подобным случайным исключениям SQL?
  • Кто-нибудь сталкивался с подобными проблемами с SQL Server 2019 и EF 6.4.4/EF 6.5.1, и если да, не могли бы вы указать мне решение?
Обновить
Я проверил, активирован ли MARS (MultipleActiveResultSets) в наших строках подключения. И это не так. С этим все должно быть в порядке.
Я также установил несколько небольших работающих приложений, которые считывают некоторые данные из базы данных через фиксированные интервалы времени, и делаю то же самое на некоторых наших клиентах. .
Как и было предложено, мы надеемся, что это приведет к выявлению машин, которые могут вызвать проблемы.
Иногда ошибки появляются снова через две недели. Так что я буду следить за этим и сообщу обновленную информацию, как только что-то произойдет.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -4-4-6-5-1
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»