C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: Serverで動かすプログラムについて


(過去ログ 107 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■63786 / inTopicNo.1)  Serverで動かすプログラムについて
  
□投稿者/ まり (5回)-(2012/10/11(Thu) 09:24:50)

分類:[VB.NET/VB2005 以降] 

Windows Server 2003(又は2008)で定期的(数分単位)に更新作業(主にファイル参照とSql)をさせるプログラムを作ろうと思っています

更新作業のコードは問題ありませんが、どのように実装しようかで悩んでいます

1.WindowsアプリケーションでTimerを起点に更新作業、Server起動時に起動するようにタスクに登録
2.Consoleアプリケーションで更新作業後終了、Server起動後、数分単位で起動するようにタスクに登録
3.WindowsサービスでTimerを起点に更新作業

3.がよさそうだと思ってはいるのですが(理由なんかかっこいい^^;)デバッグが面倒なので

1.か2.で悩んでいるところです(安定性で考えると2.と思っています)

みなさんならどのように実装しますか?
(理由も添えてください、他のアイデアがあればそれもお願いします)

開発環境 Visual Studio 2010 SP1
引用返信 編集キー/
■63787 / inTopicNo.2)  Re[1]: Serverで動かすプログラムについて
□投稿者/ オショウ (28回)-(2012/10/11(Thu) 10:28:17)
> 3.がよさそうだと思ってはいるのですが(理由なんかかっこいい^^;)デバッグが面倒なので
>
> 1.か2.で悩んでいるところです(安定性で考えると2.と思っています)
>
> みなさんならどのように実装しますか?
> (理由も添えてください、他のアイデアがあればそれもお願いします)

  断然、Windowsサービスですネ!
  サーバーのデスクトップに常時ログイン状態にするのは
  セキュリティー面でも問題があるし・・・と言うことが
  最大の要因かと。

  デバッグの問題は、作り方で回避可能かと。

  そのように動作する機能部分をクラスに分離してDLLに
  してやれば、サービス側は、タイマーで呼び出すルーチ
  ンから、そのクラスを呼び出すだけになるので、単体機
  能としてアプリで実験も可能。

  最後は、サービスの権限の問題くらいかナ〜
  ファイルを読み書きするのであれば、そのドライブ・フ
  ォルダ・ファイルへの権限が必要。

  ただ、サービスのログオンアカウントを変更して・・・
  と言うのもどうかと。サービスなんだし、NT時代から
  ちゃんと偽装方法があるので、セキュリティー設定を変
  更せずにできれば、それこそ『かっこいい〜』と言う所
  でしょうか。

以上。参考まで
引用返信 編集キー/
■63788 / inTopicNo.3)  Re[2]: Serverで動かすプログラムについて
□投稿者/ みきぬ (5回)-(2012/10/11(Thu) 11:08:05)
バッチの作りがシンプルになるという理由で、自分は2をおすすめ。

No63787 (オショウ さん) に返信
>   断然、Windowsサービスですネ!
>   サーバーのデスクトップに常時ログイン状態にするのは
>   セキュリティー面でも問題があるし・・・と言うことが
>   最大の要因かと。

ここわかりませんでした。
ログオン状態でなくても、タスクは実行可能でわないかと。

ちなみに繰り返し時間のドロップダウンでは5分間が最も細かい単位ですが、実は手で書き換えられて1分間とか指定できたりして。
(Windows Server 2008 R2 にて確認)
引用返信 編集キー/
■63789 / inTopicNo.4)  Re[1]: Serverで動かすプログラムについて
□投稿者/ 渋木宏明 (20回)-(2012/10/11(Thu) 11:20:22)
渋木宏明 さんの Web サイト
> 1.WindowsアプリケーションでTimerを起点に更新作業、Server起動時に起動するようにタスクに登録
> 2.Consoleアプリケーションで更新作業後終了、Server起動後、数分単位で起動するようにタスクに登録
> 3.WindowsサービスでTimerを起点に更新作業
>
> 3.がよさそうだと思ってはいるのですが(理由なんかかっこいい^^;)デバッグが面倒なので
>
> 1.か2.で悩んでいるところです(安定性で考えると2.と思っています)

数分間隔の実行で、実行間隔などの精度に関する要求が特に厳しくないようなら、2でいいと思います。

理由は、デバッグも運用も容易だから、です。

Windows サービスを検討するのは、もっと精度の高い実行が必要な時や、外部からのリクエストを受け付ける場合とかかな。
引用返信 編集キー/
■63797 / inTopicNo.5)  Re[2]: Serverで動かすプログラムについて
□投稿者/ まり (6回)-(2012/10/12(Fri) 08:49:24)
オショウさん、みきぬさん、渋木宏明さん回答ありがとうございました

結論ですが2.にしました

ただ気がかわった時のためにオショウさんの助言を参考にClass化しました

>ログオン状態でなくても、タスクは実行可能でわないかと。

これについてはこの通りだと思います
ただ、タスクの実行アカウントでログインログアウトを行うとプロセスが終了してしまうと記憶しています
1.で作る場合(2.もですが)は要注意ですね
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -