아래 오류 받기Hangfire : Azure SQL : 새 작업 추가 실패
내부 예외 : "개체 참조가 개체의 인스턴스로 설정되지 않았습니다." 스택 추적 :at System.Transactions.Transaction.GetPromotedToken()
오류는 회선 연결에서 비롯된 것입니다 .EnlistTransaction (Transaction.Current); 연결 문자열에 enlist = false를 설정하더라도 코드 아래에.
`internal T UseTransaction<T>([InstantHandle] Func<DbConnection, DbTransaction, T> func, IsolationLevel? isolationLevel)
{
#if NETFULL
using (var transaction = CreateTransaction(isolationLevel ?? _options.TransactionIsolationLevel))
{
var result = UseConnection(connection =>
{
connection.EnlistTransaction(Transaction.Current);
return func(connection, null);
});
transaction.Complete();
return result;
}
}`
enlist = true로 설정하면 connection.Open();에서 오류가 발생합니다. 아래의 코드에서
internal DbConnection CreateAndOpenConnection()
{
if (_existingConnection != null)
{
return _existingConnection;
}
var connection = new SqlConnection(_connectionString);
connection.Open();
return connection;
}
두 방법은 Hangfire.SqlServer.SqlServerStorage 클래스에서 존재
로컬 DB (SQL 서버 2014)에 연결하면 같은 코드가 작동합니다.
토론에 배치되어 WCF Transaction against Azure SQL DB이 문제와 관련이 있는지 확실하지 않습니다.
편집 :
HangFire 구성
GlobalConfiguration.Configuration.UseSqlServerStorage(
Database.ConnectionString,
new SqlServerStorageOptions
{
QueuePollInterval = TimeSpan.FromSeconds(10),
PrepareSchemaIfNecessary = true
});
작업 인큐
BackgroundJob.Enqueue(() => Update(connectionToken, intFileUniqueId));
도와주세요. 미리 감사드립니다.
Hanfire 작업을 추가하는 코드를 추가 할 수 있습니까? –
안녕하세요, HangFire 구성 및 작업 대기열에 코드 스 니펫을 추가했습니다. –
BackgroundJob.Enqueue (x => x.Update (connectionToken, intFileUniqueId)); x 란 무엇입니까? 줄을 대기열에 넣는 것보다 줄 바꿈하는 코드를 추가 할 수 있습니까? –