WCF-RESTfulアプリケーション用にWindowsサービスを作成しました。サービスを実行するサーバーでは、ドメイン内のユーザーとしてサインインして、サービス内のデータベースにアクセスする必要があります。つまり、Windowsサービス(削除インストール&新規インストール)を更新するときに、サービスのプロパティでこのユーザーを手動で設定する必要があるたびに、そのことを意味します。すでにC#で(ユーザー名とパスワードを使用して)アカウントを設定することが可能であれば私の質問は、あるC#:ProjectInstallerで直接Windowsサービスにサインインする
public class WindowsService : ServiceBase {
public ServiceHost serviceHost = null;
public WindowsService() {
this.ServiceName = "Processing Engine Interface"
}
public static void Main() {
Run(new WindowsService());
}
protected override void OnStart (string[] args) {
this.serviceHost?.Close();
this.serviceHost = new ServiceHost(new RestService());
this.serviceHost.Open();
}
protected override void OnStop() {
if (this.serviceHost == null) return;
this.serviceHost.Close();
this.serviceHost = null;
}
}
[RunInstaller(true)]
public class ProjectInstaller : Installer {
private ServiceProcessInstaller process;
private ServiceInstaller service;
public ProjectInstaller() {
this.process = new ServiceProcessInstaller {Account = ServiceAccount.LocalSystem};
this.service = new ServiceInstaller {
ServiceName = "Processing Engine Interface"
};
this.Installers.Add(this.process);
this.Installers.Add(this.service);
}
}
:
は、C#で、私はWindowsサービスを作成するには、次のように構成されましたか?
はい、正しくはありますが、設計時にこれらのプロパティを見つけられず、コードでのみ使用できます。私は、このリンクはより具体的なリファレンスだと思うhttps://docs.microsoft.com/en-us/dotnet/api/system.serviceprocess.serviceprocessinstaller.account?view=netframework-4.7.1 –