Сервер Hangfire не может выбирать задания, когда служба Windows размещена в режиме выпуска
Я размещаю сервер hangfire в Windows Service, чтобы при запуске моего ps сервер hangfire запускался автоматически и начинал выполнение задания.
Теперь проблема в том, когда я размещаю свою службу Windows в debug mode
а также моя общая библиотека, которая содержит код для выполнения долгосрочных заданий в debug mode
тогда все в порядке, т. е. Hangfire может взять и выполнить задание.
Но когда я размещаю свою службу Windows, а также разделяемую библиотеку в режиме выпуска, я получаю следующую ошибку:
Не удалось загрузить файл или сборку 'ClassLibrary1.SharedLibrary, версия =1.0.0.0, культура = нейтральная, PublicKeyToken=null' или одна из ее зависимостей. Была предпринята попытка загрузить программу с неверным форматом.
Моя служба Windows работает на LocalSystem
и моя база данных находится на компьютере коллеги.
Код:
public partial class MyNewService1 : ServiceBase
{
private BackgroundJobServer _server;
private System.Diagnostics.EventLog eventLog1;
public MyNewService1()
{
InitializeComponent();
eventLog1 = new System.Diagnostics.EventLog();
if (!System.Diagnostics.EventLog.SourceExists("MySource"))
{
System.Diagnostics.EventLog.CreateEventSource(
"MySource", "MyNewLog");
}
eventLog1.Source = "MySource";
eventLog1.Log = "MyNewLog";
GlobalConfiguration.Configuration.UseSqlServerStorage("connectionstring");
}
protected override void OnStart(string[] args)
{
eventLog1.WriteEntry("In OnStart", EventLogEntryType.Information);
_server = new BackgroundJobServer();
}
protected override void OnStop()
{
_server.Dispose();
}
}
Я взял код из следующей ссылки: http://docs.hangfire.io/en/latest/background-processing/processing-jobs-in-windows-service.html
В документации ничего не говорится о том, должен ли я размещать службу Windows в режиме отладки / выпуска.
Это служба Windows или проблема с зависанием?
Обновление: Я думаю, что проблема связана со службой Windows, как описано здесь, но все же не повезло:
System.BadImageFormatException возникла при сборке в режиме выпуска
1 ответ
На самом деле проблема была связана с разрешением, и я должен изменить LocalSystem
в NetworkService
так что назначить право NT AUTHORITY\SYSTEM
,
С этим я следую за ответом, данным по этой ссылке ниже, которая решила мою проблему:
System.BadImageFormatException возникла при сборке в режиме выпуска