Сервер Hangfire не может выбирать задания, когда служба Windows размещена в режиме выпуска - PullRequest
0 голосов

Я размещаю сервер 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 при сборке в режиме выпуска

1 Ответ

0 голосов

На самом деле проблема была связана с разрешением, и мне пришлось изменить значение с LocalSystem на NetworkService, чтобы присвоить права на NT AUTHORITY\SYSTEM.

После этого я получил ответ, приведенный по ссылке ниже, который решил мою проблему:

System.BadImageFormatException произошла при сборке в режиме выпуска

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...