Я нахожусь в странной ситуации, с которой я сталкиваюсь
У меня есть база данных SQL, размещенная в Azure, PaaS.
Теперь данные запрашиваются через хранимую процедуру с одним или несколькими параметрами поиска, такими как EmployeeNo
, Email
и т. Д.,
Хранимая процедура работает нормально, как было проверено, соба параметра.И работает нормально в производстве, а также.
Но , происходит то, что внезапно, в середине дня или ночи, он получает данные через EmployeeNo
, но отказывается извлекать через Email
, бросаяошибка:
500 Внутренняя ошибка сервера
Интересно, что у меня работает:
Изменение 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)