Я размещаю сервер Hangfire внутри Служба Windows , чтобы при запуске моего сервера 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 при сборке в режиме выпуска