2016-01-31 2 views
3

У меня есть хостинг-сайт «production», который отлично работает. У него есть пользователи, и до сих пор у меня нет проблем.Azure SQL Database Operation Timeout

Я решил создать тестовую среду. Я создал еще одно приложение Azure и скопировал код с моего «производственного» сайта на этот тестовый сайт. Это происходит сегодня. У пользователя нет пользователей. Я создал БД, и я согласился заплатить пять долларов в месяц. Так что это не бесплатный аккаунт. Я загрузил данные о семя, часть которых составляла 40 тыс. Строк почтового индекса. Это обошлось без проблем.

Однако, когда я пользуюсь сайтом, я последовательно получаю timeout error. Я могу заверить вас, что это НЕ из-за использования. Я увеличил тайм-аут от 30 до 90 в строке подключения, но это не изменило ситуацию. Различие между производством и тестом не существует.

Я прочитал много сообщений об этом, но никто не помог. Вот некоторые примеры:

post1post2post3post4post5post6

Любые идеи?

> [Win32Exception (0x80004005): The wait operation timed out] 
> 
> [SqlException (0x80131904): Timeout expired. The timeout period 
> elapsed prior to completion of the operation or the server is not 
> responding. This failure occurred while attempting to connect to the 
> routing destination. The duration spent while attempting to connect to 
> the original server was - [Pre-Login] initialization=27; handshake=25; 
> [Login] initialization=0; authentication=0; [Post-Login] complete=3; 
> ] System.Data.SqlClient.SqlConnection.OnError(SqlException 
> exception, Boolean breakConnection, Action1 wrapCloseInAction) 
> +2418094 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException 
> exception, Boolean breakConnection, Action1 wrapCloseInAction) 
> +5694436 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject 
> stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +285 
> System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, 
> SqlCommand cmdHandler, SqlDataReader dataStream, 
> BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject 
> stateObj, Boolean& dataReady) +3731 
> System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() +58 
> System.Data.SqlClient.SqlDataReader.get_MetaData() +89 
> System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, 
> RunBehavior runBehavior, String resetOptionsString) +379 
> System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior 
> cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean 
> async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader 
> ds, Boolean describeParameterEncryptionRequest) +2064 
> System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior 
> cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String 
> method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, 
> Boolean asyncWrite) +375 
> System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior 
> cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String 
> method) +53 
> System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior 
> behavior, String method) +240 
> System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior 
> behavior) +41 
> System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior) 
> +12 System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand 
> entityCommand, CommandBehavior behavior) +435 

Usage Graph

+0

Когда вы испытываете таймаут, какой процент DTU вы потребляете? –

+0

@JosephIdziorek Еще раз спасибо Джозефу за помощь. Я добавил график использования к вопросу. Отвечает ли это на ваш вопрос? – Zuzlx

ответ

4

Это был вопрос ДТУ. У меня было 5 DTU (S0), теперь у меня есть 20 DTU (S1). Если у меня будет моя физика, это будет похоже на паровой двигатель и BTU. Мощность лошадиных сил.

+1

У нас была такая же проблема - оказалось, что мы запускали пакет SSIS, который превысил DTU, и наше веб-приложение получало сообщение «Этот сбой произошел при попытке подключиться к адресату маршрутизации». Требуется больше лошадиных сил. – jowensboggs

1

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

Поскольку в моей таблице были данные, которые можно было регенерировать (ничто не критично, чтобы хранить только некоторые сводные данные), я быстро опустошаю таблицу и запускаю миграции. После этого все было хорошо.

Смежные вопросы