Изменение базы данных Azure «шифрование включено» устраняет проблему, странно - PullRequest
0 голосов
/ 15 мая 2019

Я нахожусь в странной ситуации, с которой я сталкиваюсь

У меня есть база данных SQL, размещенная в Azure, PaaS.

Теперь данные запрашиваются через хранимую процедуру с одним или несколькими параметрами поиска, такими как EmployeeNo, Email и т. Д.,

Хранимая процедура работает нормально, как было проверено, соба параметра.И работает нормально в производстве, а также.

Но , происходит то, что внезапно, в середине дня или ночи, он получает данные через EmployeeNo, но отказывается извлекать через Email, бросаяошибка:

500 Внутренняя ошибка сервера

Интересно, что у меня работает:

My DB Temp Solution

Изменение Encryption Enabled на true и и наоборот

Почему это происходит так? ..

Может кто-нибудь помочь ..

Редактировать: База данных и вызывающий API оба размещены в Azure.И когда соответствующая процедура запускается через SSMS, она работает идеально, как было сказано ранее.Проблема кажется повторяющейся.

Редактировать -2: Согласно комментариям, ошибка, которую я вижу в журналах:

Истекло время ожидания выполнения.Время ожидания истекло до завершения операции, или сервер не отвечает.

Но , я увеличил CommandTimeout до 90 в моем коде,на всякий случай

Полное исключение выглядит так:

Сообщение об исключении: Истекло время ожидания выполнения.Время ожидания истекло до завершения операции или сервер не отвечает.Внутреннее исключение: System.ComponentModel.Win32Exception (0x80004005): Тайм-аут операции ожидания ожидания трассировки стека: в System.Data.SqlClient.SqlConnection.OnError (исключение SqlException, логическое прерывание, соединение, действие 1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action 1.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject stateObj, Boolean, Boolean callerHasConnectionLock asyncClose) в System.Data.SqlClient.TdsParser.TryRun (RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader DATASTREAM, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean & dataReady) в System.Data.SqlClient.SqlDataReader.TryConsumeMetaData () в System.Data.SqlClient.SqlDataReader.get_MetaData () в System.Data.SqlClient.SqlCommand.FinishExecuteReader (SqlDataReader Д.С., RunBehavior runBehavior, String resetOptionsString, Boolean IsInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted) в System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavioг cmdBehavior, RunBehavior runBehavior, булева returnStream, булева асинхронной, Int32 тайм-аут, задача и задачи, булева asyncWrite, булева inRetry, SqlDataReader DS, булева describeParameterEncryptionRequest) при System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, булевой returnStream,Строковый метод, TaskCompletionSource 1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader() at VL.SJ.EMDM.Data.DataProvider.EmployeDataProvider.GetEmployeeDetails(SearchEmployee searchEmployee) at VL.SJ.EMDM.Web.API.Controllers.EmployeeController.GetEmployeeDetails(SearchEmployee searchEmployee) at lambda_method(Closure , Object , Object[] ) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass13.<GetExecutor>b__c(Object instance, Object[] methodParameters) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.<>c__DisplayClass5.<ExecuteAsync>b__4() at System.Threading.Tasks.TaskHelpers.RunSynchronously[TResult](Func 1 func, CancellationToken cancellationToken)

...