この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 36585|答える: 3

[ASP.NET] C#は定期的にタスクを実行するWindowsサービスです

[リンクをコピー]
掲載地 2019/04/27 17:56:09 | | | |


前書き

前回のWindows Task Schedulerに関する記事に続き、本記事ではWindowsサービスの作成過程を記録します。
環境とツール

>Windows 10システム

>VS 2017

テキスト

1: 新しいソリューションを作成し、Windowsサービスを作成する。 その名前は「WindowsServiceDemo.exe






2: 「Service1.cs」ファイルをダブルクリックし、空欄を右クリックして「インストーラーを追加」>選択します。







3: 生成される2つのコンポーネントで「serviceProcessInstaller1」コンポーネントをクリックし、プロパティフォームで「Account」アカウントタイプを「LocalSystem」に設定します。





4: 生成された2つのコンポーネントでプロパティフォームの「serviceInstaller1」コンポーネントをクリックし、対応するプロパティを設定してから保存します。




5:「Service1.cs」を右クリックし、「コードを表示」>選択します。






6: 対応するメソッドで処理ロジックを書きます。 OnStart() メソッド:Windows サービス開始時に入力されるメソッドを指します。 OnStop():名前の通り、サービスが停止したときにこの方法で入ります。 通常の性交時にプログラムがロジックを処理できるようにタイマーを書くことができます。






7: 2つのメモ帳ファイルを作成し、それぞれ「Install.bat」と「Uninstall.bat」という接尾辞名を付けて変更します。注:接尾辞名は.batです。 プロジェクト内に貼り付けます。 そして属性を「ローカルにコピーする」に変更してください。



8: 今作成した2つのファイルは、サービスのインストール用とアンインストール用です。 次に、この2つのファイルにバッチコードを書き込んで保存します。
「Install.bat」ファイルを開き、以下のコードを書きます
注:「WindowsServiceDemo.exe」は今生成されたexeプログラムです。 「AServiceTest」は「serviceInstaller1」コンポーネント内の「ServiceName」セットです。

「Uninstall.bat」ファイルを開き、以下のコードを書きます


9: F6が生成します。 プロジェクトの「bin\Debug」ディレクトリに。 「Install.bat」を右クリックして「管理者として実行」>選択してください。



サービス設置が完了すると、 「Log.txt」ファイルは10秒ごとに1行のデータが書き込まれていることがわかります。


インストール済みのサービスを見ることができます。
実行 – > "services.msc" を入力してください。



今すぐサービスを停止してください。 「Uninstall.bat」を右クリックして「管理者として実行」>選択します。



サービスがアンインストールされた後。 「Log.txt」ファイルにはデータラインも書き込まれています。



#Windowsサービスデバッグ

WindowsサービスはF5、F10デバッグで直接起動できません。 では、異常があった場合、プログラムをどうやってデバッグすればいいのでしょうか?
1: まず管理者を使って「Install.bat」ファイルを実行させ、まずプログラムを実行させます。

2: VSに戻り、メニューバーで「Debug」を選択し、>「Attach to Process」を選択します。





3: ポップアップフォームで「すべてのユーザーのプロセスを表示する」にチェックを入れ、生成した.exeアプリケーションを見つけて「Attach」をクリックします。




4: メソッドのポイントを壊し、一定時間実行されたときにデバッグをトリガーできるようにします。



エピローグ

Windowsサービスのデバッグは非常に厄介で、プログラムが問題として書かれていてサービスが起動できず、デバッグが難しくなることがあります。 一般的に、Windowsサービスの執筆にはコンソールアプリケーションが伴います。 コンソールアプリケーションでデバッグし、その後Windows Servicesに移します。 次のトピックでは、Windowsサービスをより簡単に作成する方法について説明します。


注:2つのプログラムによって起動およびアンインストールされたバッチファイルは管理者として実行されなければなりません。 そうでなければ、それは誤りとなります。









先の:ビッグデータ共有のための一般的なアルゴリズム(アプリケーション)
次に:C#のスケジュール実行タスクにおけるTopshelfの利用
掲載地 2019/05/08 10:59:16 |
共有してくれてありがとうございます。ちょうどいいタイミングで送ってください
掲載地 2020/06/22 14:04:33 |
このミスは必ず報告してください
 地主| 掲載地 2020/09/07 15:21:59 |
awclovelin 2020-6-22 14:04 投稿
このミスは必ず報告してください

実行中のコマンドが間違っており、このサービスはインストールされていません。 コマンドラインをタップしてインストールする場合は、次の投稿を参照してください。
C#のスケジュール実行タスクにおけるTopshelfの利用
https://www.itsvse.com/thread-7503-1-1.html

免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com