私は、Win10で実行するWindowsサービスを作成しましたが、少し変更するまで完全に問題なく動作しました。ロジックを書き直して、デバッグ構成とリリース構成の両方でテストしましたが、すべて問題ありませんでした。次に、_installutil.exe /u %servicename.exe%
_を使用してサービスの現在のバージョンをアンインストールし、_installutil.exe %servicename.exe%
_を使用して再インストールしました。何らかの理由で、この新しいバージョンは起動できず、エラー1064でクラッシュします。これは完全なエラーテキストです。
_Windows could not start %servicename% service on Local Computer. Error 1064: An exception occurred in the service when handling the control request.
_
前回このサービスをインストールしたときに、いくつかの問題が発生しましたが、_Log On
_プロパティを変更することですぐに修正しました。今回は動作しません。この問題を手伝ってください。
ありがとう。
更新1
これが私のMain()
およびOnStart()
サービスメソッドです。
Main()
_static void Main()
{
#if DEBUG
var service = new SalesforceToJiraService();
service.OnDebug();
Thread.Sleep(Timeout.Infinite);
#else
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new SalesforceToJiraService()
};
ServiceBase.Run(ServicesToRun);
#endif
}
_
OnStart()
_protected override void OnStart(string[] args)
{
this.ConfigureServices();
this.timer.Start();
this.logger.Information("SalesforceToJira service started.");
}
_
更新2
その他のコード:
ConfigureServices()
_protected void ConfigureServices()
{
this.configuration = ConfigurationHelper.LoadConfiguration(ConfigurationPath);
this.logger = ConfigurationHelper.ConfigureLogger(this.configuration.Logs.LogsPath);
this.timer = ConfigurationHelper.ConfigureTimer(this.configuration.ProcessInterval.TotalMilliseconds,
(sender, eventArgs) => this.ProcessCasesAsync(sender, eventArgs).GetAwaiter().GetResult());
this.salesforceClient = new SalesforceCliClient(this.configuration.Salesforce.CliPath);
this.jiraClient = Jira.CreateRestClient(
this.configuration.Jira.Url,
this.configuration.Jira.Username,
this.configuration.Jira.Password);
}
_
JSON構成ファイルの逆シリアル化には_Newtonsoft.JSON
_、ロギングにはSerilog
、定期的なイベントには_System.Timers.Timer
_、Jira APIにはAtlassianSDK
を使用しており、_Salesforce CLI
_ for Salesforce。
私のサービスを開始すると、まったく同じエラー1064が発生しました。私にとって、サービスを登録したユーザーは、データベースで有効なユーザーではありませんでした。追加すると、うまくいきました。