2016-05-15 3 views
3

Я только что опубликовал сайт Azure с использованием Azure SQL.Hangfire on Azure SQL

Однако я получаю ошибку

An existing connection was forcibly closed by the remote host 

при достижении веба-сайта, с обратным вызовом, связанным с замедленным воспламенением:

[Win32Exception (0x80004005): An existing connection was forcibly closed by the remote host] 

[SqlException (0x80131904): A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)] 
    System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling) +830 
    System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) +329 
    System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions) +38 
    System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +507 
    System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +154 
    System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +21 
    System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) +90 
    System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +217 
    System.Data.SqlClient.SqlConnection.Open() +96 
    Hangfire.SqlServer.SqlServerStorage.CreateAndOpenConnection() +49 
    Hangfire.SqlServer.SqlServerStorage.UseConnection(Func`2 func) +41 
    Hangfire.SqlServer.SqlServerStorage.UseTransaction(Func`2 func, Nullable`1 isolationLevel) +84 
    Hangfire.SqlServer.SqlServerStorage.UseTransaction(Action`1 action) +73 
    Hangfire.SqlServer.SqlServerWriteOnlyTransaction.Commit() +47 
    Hangfire.RecurringJobManager.AddOrUpdate(String recurringJobId, Job job, String cronExpression, TimeZoneInfo timeZone, String queue) +277 

Любой идеей?

+0

Вы часто получаете эти ошибки? Если нет, проверьте это [ссылка] (http://stackoverflow.com/a/34413504/6326116) – riteshmeher

+0

К сожалению, теперь это начальное развертывание веб-приложений. Это просто не работает, и я получаю эту ошибку, используя/hangfire url – Dekim

+0

У меня такая же проблема. –

ответ

6

У меня была такая же проблема. Если вы, как и я, скопировали строку подключения с страницы настроек базы данных Azure Portal, попробуйте удалить Pooling=False;. Это поставило вопрос для меня.

Извините, у меня нет хороших объяснений, почему это привело к тому, что Hangfire потерпел неудачу. Но, как правило, вы бы хотели, чтобы пул соединений был включен.

+0

Можете ли вы поделиться своим общим опытом, используя пожар с помощью SQL azure db? –

+0

Нужно ли увеличивать интервал опроса по умолчанию или откатывать собственный логический ответ или логику отказоустойчивости? –

+0

Извините за поздний ответ. Я просто экспериментировал с перемещением одного из существующих приложений в Azure Web Apps, поэтому я не могу сказать, что у меня был большой опыт использования Hangfire с Azure SQL, кроме как он работал, как ожидалось. И мы используем его только для отправки уведомлений по электронной почте в фоновом режиме, поэтому нет требований к отказоустойчивости. Что касается интервала опроса, мне не пришлось менять значение по умолчанию. – M1Les