2011-08-10 3 views
0

現在、クライアント用のc#.netサービスを開発中です。以前はデバッグ用の.netサービスに問題があったので、Debug.Launch()を追加しました。私のIDEが起動時にEasier way to debug a Windows serviceで示唆されるように起動するようにしてください。そのすべてが素晴らしい作品です。スタートアップ時のC#サービスは常にデバッガを使用します

しかし、それは打ち上げの時間が来た、私はデバッグをオフ...とそれはまだそれをやった!どう?ですから、解決策として、私はすべてのデバッグスタートアップコードを取り除きました....そしてそれはまだデバッガをロードするよう依頼します。私はリリースモードでインストールしようとしましたが、それはまだこれを行います。私は単にnoをクリックして続けることができます...しかし、これはクライアントには受け入れられません。

私には何が欠けているかもしれませんか?

+6

デフォルトでは、Visual Studioはリリースを別のフォルダにビルドしています。 Windowsでサービスを再登録して、リリースの場所(\ bin \ Release \)を確認しましたか? – Dmitry

+0

あなたのGACもチェックしてください –

+0

コードから削除した場合、本当に添付ファイルの問題が発生しないはずです。元のバージョンが何らかの形で実行されていると思われます。あなたのGACをチェックし、あなたのライブラリがローカルdllよりも先行しているので、それがライブラリにインストールされていないことを確認してください。 –

答えて

2

VSデバッガがプロセスに接続されると、スタックトレースが表示されます。理由を見つけるのに役立ちます。この呼び出しがデバッガの起動をトリガする場合は、Debugger.Launch()呼び出しで停止します。そして、私がコメントで言ったように、VSはあなたが本来登録したbin/Debugではなく、bin/Releaseでリリースバージョンをビルドするので、Windowsでサービスを登録するだけでよいかもしれません。

+0

申し訳ありませんが、指定する必要があります。私はGACの問題ではありません。なぜなら私は顧客のマシン上でリリースモードでクリーンなビルドでカスタムインストーラを使用しているからです。したがって、私はそれが起こったときに作られた '笑い'の顔。私はここで何が起こっているのか正確にはわからない。私はそれをデバッグしようとしました...そして、それはバグではないので、プログラムの開始時です。私は問題が何であるかについてはっきりしていません。 私はチェックを続け、私がそれを把握すると、私は解決策が何だったのかを発表します。 –

+0

使用しているDebugger.Launchコードとは無関係のクラッシュがある可能性があります。おそらくdllやWindowsのようなものはデバッガをアタッチするよう促すだけですが、これは顧客のマシンにインストールされているようです。 – Dmitry

+0

別の場所にあるコードにDebugger.Launch()を置く別の開発者がいます。私はそれについて何も知らなかったし、それがないという愚かな前提(私たちはすべて前提について知っている)を作っていた。 私はそれを見逃していたので、それは多くの手抜きの間にコードに深く埋められていました。 ありがとうございます。 ストーリーのモラル:他に何かをする前にDebugger.Launch()を検索してください。 –

関連する問題