1

私は、Windows サービスを持つ Asp.Net MVC アプリケーションに取り組んでいます。

Windows サービスは基本的に、いくつかのパラメーターを受け取ってデータを返す外部の SOAP ベースの Web サービスを呼び出します。Windows サービスはそのデータを SQL サーバーに格納します。この Windows サービスは、外部 Web サービスを定期的に自動的に呼び出します。

私はサービスの詳細を理解していないので。次の行について教えてください。

  1. これを達成するための技術は何ですか?
  2. WCF を使用して Windows サービスを作成できますか? その場合、どのプロトコルが使用されますか?
  3. 開発/テスト中に Windows サービスを実行する方法は?
  4. Web サービスを呼び出す Windows サービスをスケジュールする方法は?
4

3 に答える 3

2

マイクロソフトのテクノロジを既に使用しているため、C# を使用して Windows サービスを構築することをお勧めします。

シンプルな Windows サービスを作成するためのすべての詳細が記載されているリンクをご覧ください。

C# での基本的な Windows サービスの作成

http://www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C

Web サービスを呼び出すタイマーも作成する必要があります。

こちらもご覧ください:

「タイマー」を実装する最良の方法は何ですか?

更新

1-これを達成するための技術は何ですか?

--> C#

2- WCF を使用して Windows サービスを作成できますか? その場合、どのプロトコルが使用されますか?

--> いいえ、それらは 2 つの異なる概念です。ただし、マネージド Windows サービスで WCF サービスをホストすることはできます。ここを見てください: http://msdn.microsoft.com/en-us/library/ms733069.aspx 個人的には、そのアプローチは好きではありません。

3-開発/テスト中にWindowsサービスを実行する方法は?

--> 管理ツール C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\services.lnk から Windows サービスを開始/停止/一時停止できます。

4- Web サービスを呼び出す Windows サービスをスケジュールする方法は?

--> Web サービスを呼び出す Windows サービスの「OnStart」メソッドでタイマーを開始します。

于 2013-10-23T02:06:06.130 に答える
1

(1) 特に System.ServiceProcess.ServiceBase と OnStart() イベントからクラスを作成する方法を見てください。

public class MyService : System.ServiceProcess.ServiceBase
{
    protected override void OnStart(string[] args){}
}

(2) wcf サービス呼び出しから Windows サービスを作成することはできませんが、開始のシグナルを送ることはできる場合があります。

(3) Release|Debug スイッチを使用して、デバッグ モードでサービスの開始をデバッグできるようにしていますが、これは私にとっては簡単なことです。

static void Main()
{
#if (!DEBUG)
    System.ServiceProcess.ServiceBase[] servicesToRun;
    servicesToRun = new System.ServiceProcess.ServiceBase[] { new MyService() };
    System.ServiceProcess.ServiceBase.Run(servicesToRun);
#else
    MyService service= new MyService();
    service.OnStart(null);    
    System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
#endif 
}

(4) 定期的に実行するようにサービス エージェントのスケジュールを設定する必要がある場合があります。データの更新とサービスの実行時間については、スレッド化、スレッドプール、およびタイマーを調べてください。

于 2013-10-23T02:24:59.523 に答える
0

Visual Studio は、Windows サービスの作成に適しています。使用している VS のバージョンがわからない。Windows サービス テンプレートおよび関連する機能は、Visual Studio の Standard または Express Edition では使用できません。ただし、それらを構成することはできます。

参照: http://msdn.microsoft.com/en-us/library/vstudio/76477d2t(v=vs.100).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

また、WCF と Windows サービスは異なります。WCF は、Microsoft の以前のすべての Web サービス テクノロジに代わるものです。Windows サービスは、UI なしで実行されるバックグラウンド サービスです。

参照: Web サービスと WCF サービス

于 2014-08-26T02:16:37.930 に答える