2010-12-07 5 views
-1

2分ごとにユーザーに電子メール通知(dbから取得したリスト)を送信するWindowsサービスを1つ作成しました。私はすべてがWebサービスで正常に実行されていることを確認したいので、サービスをデバッグしたいと思います。このサービスは、アプリケーションのサーバー設定が完了したときにSMC(services.msc)にインストールされます。Windowsサービスのデバッグ

私の質問:どのようにWindowsサービスをデバッグしますか?

私はが

  • は、私は、以下のリンク

  • Debug Windows Service

  • Debugging a Windows Service and trying to see what it sees

  • を作ることは、任意の入力が必要な場合は、私に教えてください。

    ありがとうございます!

    EDIT:

    @maycil私はあなたのIf(!Debug)コードを書いたが、私は、私は、Visual Studioの適切な色が表示されないよう、いくつかの問題があると思います。

    alt text

    +0

    オペレーティングシステム? – Aliostad

    +0

    コンソールアプリケーションとして実行し、デバッグすることができます。私が知っている限り、サービスとして実行しているコードを直接デバッグすることはできません。 http://tech.einaregilsson.com/2007/08/15/run-windows-service-as-a-console-program/ –

    +2

    [プロセスにアタッチ]ウィンドウの[すべてのセッションでプロセスを表示する]チェックボックスをオンにしましたか? – jvanrhyn

    答えて

    1
    static void Main() 
    { 
    #if (!DEBUG) 
    
    
          ServiceBase[] ServicesToRun; 
          ServicesToRun = new ServiceBase[] { new Service1Component() }; 
          ServiceBase.Run(ServicesToRun); 
    
    
    #else 
          Service1Component s = new Service1Component(); 
          s.StartProcess(); 
    #endif 
    } 
    

    あなたはサービスが接続されたコンソールで実行されているかどうかを確認するためにEnvironment.UserInteractiveを使用することができますmaycilの答えの線に沿ってService1Companent.cs

    +0

    コメントありがとうございます。コードを書くときにStartProcessを見つけることができません。 –

    +0

    あなたのプライベートコードになります。protected OnStart(string [] args)メソッド – maycil

    2

    にこのコードを試してみてください。そうすることで、サービスとコンソールアプリケーションとしてのデバッグの両方で動作します。

    static void Main(string[] args) 
    { 
        if(!Environment.UserInteractive) 
        { 
         var servicesToRun = new ServiceBase[] {new Service1Component()}; 
         ServiceBase.Run(servicesToRun); 
        } 
        else 
        { 
         var services = new Service1Component(); 
         services.Start() 
         Console.WriteLine("Press return to exit"); 
         Console.ReadLine(); 
         services.Stop(); 
        } 
    } 
    
    +0

    +1このメソッドは '#if DEBUG'よりも好きです。プロジェクトの作成方法に関係なく動作します。 –

    関連する問題