私は最も奇妙な問題を抱えています。
私の C# ソリューションには、デスクトップ テスト アプリケーションとサービス アプリケーションがあります。両方のアプリケーションの開始時に、まったく同じメソッドを呼び出しますが、動作はまったく異なります。私のデスクトップ アプリケーションは問題なく動作し、COM ポートを読み取り、その情報を処理してから、そのデータを DB に挿入します。サービスアプリケーションは、COMポートを正常に読み取りますが、その後、データの処理がまったく異なり、その後、間違ったデータを変換しようとしているためにSQLExceptionがスローされます(具体的には日時「01/01/0001」)。
このアプリケーションをサービスにする必要があります。テストするためだけにデスクトップ アプリを用意しています。私はしばらくの間サービスに取り組んできましたが、この動作はこれまで見たことがありません。
まったく同じライブラリを使用して同じ関数を呼び出して、アプリケーションとサービスの動作が大きく異なる可能性があるのはなぜですか?
コードは次のとおりです。
サービス:
protected override void OnStart() { csGPS.startGPSData(); Thread hiloEscuchar = new Thread(delegate() { csListener listener = new csListener(); listener.listenAutoCommand(); }); hiloEscuchar.Start(); Thread hiloEnviar = new Thread(delegate() { csSender.buscarComandos(); }); hiloEnviar.Start(); Thread hiloEnviarPosiciones = new Thread(delegate() { csSender.enviarPosiciones(); }); hiloEnviarPosiciones.Start(); }
デスクトップ アプリ:
private void btnComenzar_Click(object sender, EventArgs e) { csGPS.startGPSData(); Thread hiloEscuchar = new Thread(delegate() { csListener listener = new csListener(); listener.listenAutoCommand(); }); hiloEscuchar.Start(); Thread hiloEnviar = new Thread(delegate() { csSender.buscarComandos(); }); hiloEnviar.Start(); Thread hiloEnviarPosiciones = new Thread(delegate() { csSender.enviarPosiciones(); }); hiloEnviarPosiciones.Start(); lblEstado.Text = "STARTED"; btnComenzar.Enabled = false; }
皆さんが私を助けてくれることを願っています。
ありがとう。