2017-07-18 9 views
0

リリースモードのC#で実行されません。 Windowsサービスのメソッドと実行されるスレッドは、サービスがまだ生きているかどうかを確認するために無限に(OnStop()が呼び出されるまで)実行される単なるスレッドです。&Windowsサービスは、私がデバッグモードでそれを実行したときに動作し、(Visual Studioの2008年に)私は、Windowsのサービスに取り組んでいます

public Timer myTimer; 
    public string fileName; 
    string txtLog; 

    public Descarga() 
    { 
     InitializeComponent(); 
     myTimer = new Timer(); 
     myTimer.Interval = 10000; 
     myTimer.Elapsed += new ElapsedEventHandler(myTimer_Elapsed); 
    } 
    protected override void OnStart(string[] args) 
    { 
     myTimer.Enabled = true;    
    } 

私がデバッグモードで起動するとき、これは完全に正常に動作しますが、私はリリースでそれを実行すると、サービスは、ホストされますが、コードが実行されません。

サービスのユーザーが変更され、問題が引き続き発生します。

種は、あなたのOnStart

protected override void OnStart(string[] args) 
{ 
    myTimer.Enabled = true;    
} 

タイマーを開始している、私はあなたのコード内で見ることができるものから

+0

「Timer」クラスはどちらを使用していますか? –

+0

@ToniWenzel - コンテキストからは、['System.Timers.Timer'](https://msdn.microsoft.com/en-us/library/system.timers.timer(v = vs.110) .aspx)。他のFX Timerクラスは、さまざまなプロパティ/コールバックの概念を持っています。 –

+0

リリース/サービスとして実行すると、「サービスは開始されましたが停止しました...」の行に沿ってメッセージが表示されますか? –

答えて

1

について。リリースモードでは、あなたはそれを呼んでいないと私はあなたのタイマは、サービスを起動しているとは思わない開始されていない。リリースモードでも同様に呼び出す必要があります。

関連する問題