c# - エラー1054-サービスがタイムリーに応答しませんでした-C#アプリケーション

c# service saas

サービスアプリケーションのインストールに問題があります。デバッグモードを実行しているときは、すべてが正しく機能し、すべての論理的なものが機能します。私は以前にサービスアプリケーションを作成しましたが、2つを比較すると、これと実際のアプリケーションにはほとんど違いがありません。私のコードに関するヘルプを事前にありがとう:

 class MainClass : ServiceBase
{
    ABCSQLCon _SQLCon = new ABCSQLCon();
    private int cycleTime = 0;

    private delegate void processError(String errorMessage);

    static void Main(string[] args)
    {
        #if(!DEBUG)
            ServiceBase.Run(new MainClass());
        #else
            MainClass service = new MainClass();
            service.OnStart(new string[0]);
        #endif
    }

    protected override void OnStart(string[] args)
    {
        addToLog("Testing SQL Connection...", "Log");
        cycleTime = _SQLCon.sleepTime;
        addToLog("Sleep Time has been set...", "Log");
        if (_SQLCon.testSQLConnection())
        {
            addToLog("Connection to SQL Database succeeded", "Log");
           // queryThread();

            //not neccessary to make applicated multithreaded yet.
            addToLog("Starting Query Thread...", "Log");
            ThreadStart queryCycle = new ThreadStart(queryThread);
            Thread qThread = new Thread(queryCycle);
            qThread.Start();
        }
    }

    private void startProgram()
    {
    }

    protected override void OnStop()
    {
        base.OnStop();
    }

    public MainClass()
    {
        this.ServiceName = "ABCSQL Engine";
    }


ああ、私は今問題を見つけました、SQL接続テストは迅速なオープンとクローズのジョブに過ぎませんでしたが、私が見なかったり、気付かなかったのは、その_SQLCONオブジェクトを初期化しているところです。
私はそれを自分の方法に移し、今はうまくいきます。幸せな日々、私が探していなかった場所を見るのを助けてくれた回答に感謝します。バツ
答え
サービススレッドのブロックを回避するために、サービススレッドとは異なるスレッドでメソッドを呼び出すことがベストプラクティスです。
public void MyMethod()
{
        addToLog("Testing SQL Connection...", "Log");
        cycleTime = _SQLCon.sleepTime;
        addToLog("Sleep Time has been set...", "Log");
        if (_SQLCon.testSQLConnection())
        {
            addToLog("Connection to SQL Database succeeded", "Log");
           // queryThread();

            //not neccessary to make applicated multithreaded yet.
            addToLog("Starting Query Thread...", "Log");
            ThreadStart queryCycle = new ThreadStart(queryThread);
            Thread qThread = new Thread(queryCycle);
            qThread.Start();
        }

}

 private Thread _myThread;
 protected override void OnStart(string[] args)
{
        ThreadStart threadStart = MyMethod;
         _myThread = new Thread(threadStart);
         _myThread.Start();
}
関連記事

c# - Visual Studio 2010でフィルタープログラムをデバッグするにはどうすればよいですか?

c# - ASP.Net MVC3モデルバインディングIEnumerable <T>とエディターテンプレート[重複]

c# - C#では、ローカルスコープを持つオブジェクトはスタックを使用しますか?

c# - リストビューは更新時に変更されません

c# - JavaリストXMLをC#にインポートする方法

c# - C#ファイルストリームをEXEファイルに渡す

c# - インターフェイスでイベントハンドラーを宣言する方法

c# - C#:SessiosnStateモードSqlServerで使用するためにデータセットをシリアル化可能にする

c# - 特定のアセンブリからの未処理の例外のみを処理する

c# - ウェブサイト-クラスのコンパイル-サーバーでの更新