[英]There are no active servers. Background tasks will not be processed
我有一個問題,已經幾天了,但仍然沒有解決方案。
我在C#Web應用程序日志中發現了此異常。
[2015-12-03 13:56:06] [錯誤] [] [執行“服務器引導程序”組件時發生錯誤。 將在00:05:00秒內重試執行(嘗試2147483647的120)。] [System.Data.SqlClient.SqlException(0x80131904):用戶“ A網絡帳戶”的登錄失敗。
在我看來,它正在使用網絡帳戶訪問SQL數據庫,並且因為未授予該網絡帳戶訪問數據庫的權限,因此登錄失敗並且服務器無法啟動。
但是,當我轉到Hangfire儀表板時,可以看到重復的作業,在我看來,hangfire可以使用正確的帳戶訪問數據庫以檢索重復的作業。
另外,在IIS服務器中,我們已經將應用程序池的標識設置為“ ApplicationPoolIdentity”。 因此,我們應該使用虛擬帳戶而不是網絡帳戶。
我是否可以知道有人遇到類似的問題並找到解決方案。 非常感謝您的幫助!
我在將Hangfire與SQL Server和EntityFramework Code First結合使用時遇到了相同的問題,其中EntityFramework負責創建數據庫,因此,該建議完全基於這種情況。
如果您使用的是EF Code First,則直到第一次創建並訪問上下文后,才會創建數據庫。
這意味着在“應用程序啟動”中,您的數據庫可能不存在。 Hangfire不會創建數據庫,它只會在現有數據庫中創建表。
因此,您可能會看到的是:
我解決問題的方法是確保即使數據庫為空(不是表),也至少要創建它。 hangfire可以訪問它以安裝它的表並啟動,而EF可以訪問它並創建它的模式。
另外,(也許不是),GlobalConfiguration.Configuration.UseSqlServerStorage()應該在其他Hangfire啟動配置之前先運行。
希望有幫助!
史蒂夫
您應該創建后台作業服務器實例,請參見此處的文檔
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.