Windows サービスとして実行したい Windows アプリケーションがあります - どうすれば実行できますか?
5 に答える
これを行うには、ツールXYNTServiceを使用できます。
通常のアプリケーションを起動できるサービスであり、職場で使用し、GUIアプリでも動作します。サービスはローカルのSERVICEアカウントで実行されているため、別のwinlogonセッションで実行されているため、GUIを表示したりアクセスしたりすることはできません。
Windows Resource Kit: How To Create a User-Defined Serviceの INSTSRV および SRVANY ツールを使用し ます。
ソースコードがある.Netアプリケーションのソリューション:
プロジェクトにコントローラーとビジネスロジックが十分に分離されている(MVC)場合、これは非常に簡単で高速です。
まず、ソリューションに新しいプロジェクトを作成し、[Windowsサービス]を選択します。これにより、Mainを含むProgramクラスを持つ新しいプロジェクトが作成されます。
メイン内で、サービスベースクラスをアタッチする必要があります。
static class Program
{
static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] {new Service1(), new MySecondUserService()};
ServiceBase.Run(ServicesToRun);
}
}
サービス内(ServiceBaseを拡張するサービスをオーバーライドする必要があります:
protected override void OnStart(string[] args)
コントローラを呼び出してジョブを開始するか、スレッドを使用してwhile(...)から開始することができます。
そうでなければ、パトリックカフからのリンクは良いものです。
既に推奨されている XYNTService と SRVANY に加えて、Windows サービスとして任意のアプリケーションを実行するように設計された商用製品である AlwaysUpを検討する必要があります。30 日間無料でお試しいただけます。
幸運を!