1

2008 にアップグレードして以来、私とここにいる多くの人々は、ランダムに VS がコードに介入したり、ブレークポイントを飛び越えたりしなくなったことに気付きました。デバッグが本当の雑用になりつつある段階に達しました。SP1 を実行していますが、2008 Basic にも問題があることに気付きました。

ロバートの質問への参照: Windows サービス内で WCF とリモート サービスをホストします。基本的に、クライアント (通常は Windows exe) からの呼び出しは、(リモート処理や WCF インフラストラクチャとは対照的に) サービス自体とコード内のスレッドになります。コードに入ると、ブレークポイントはこの動作をします。

ここで行うデバッグの多くはサービス コードで行われるため、プロセスを開始した後にプロセスにアタッチしない限り、必要な状態に到達することが不可能な場合があります。resharper などの拡張機能を使用している開発者と、バニラ VS を実行している開発者の両方に発生します。

グーグルで検索してもあまり役に立ちません。

他の誰かがこれを経験していますか?

よろしく、プリート


Spudlo の答えは、私たちにとって非常にうまくいきました。ありがとうございました。MSDNから修正プログラムをダウンロードしてください

4

4 に答える 4

2

これは、パッチへのリンクを含むブログ投稿です。

于 2008-11-18T00:24:02.847 に答える
2

はい、RELEASE から DEBUG に切り替えるのを忘れたときです。;)

自分の愚かさに気付く前に、いつも私を夢中にさせます。

于 2008-11-14T04:05:00.813 に答える
2

確認事項:

  • PDB はアプリケーション dll と同じディレクトリにありますか?
  • それらはデバッグビルドですか?
  • また、ソースへのパスは異なりますか?
  • アタッチ時にDLLがロードされますか(出力コンソールを確認してください)?
  • ブレークポイントは、VS で中空の (塗りつぶされていない) 円として表示されますか? その場合は、ブレークポイントにカーソルを合わせると、ブレーク ポイントを設定できない理由が表示されます。

おそらく回避策として、VS 内からサービスを開始できます。アプリケーションをコンソール アプリに変更し、OnStart メソッドを呼び出すメイン メソッドを追加する場合 (Windows サービスと同様)。アプリを Windows サービスとしてインストールすることも、VS から直接実行することもできます。

public static void Main(string[] args)
{
    if (Environment.UserInteractive)
    {
        Console.WriteLine("Starting service...");
        Service1 svc = new Service1();
        svc.OnStart(args);
        Console.WriteLine("Started");
        Console.WriteLine("");
        Console.WriteLine("Press any key to stop");
        Console.Read();
        Console.WriteLine("Stopping...");
        svc.OnStop();
        Console.WriteLine("Stopped, Press any key to exit");
        Console.Read();
    }
    else
    {
        ServiceBase.Run(new Service1());
    }
}
于 2008-11-14T04:10:24.297 に答える
1

SP1 で BP の問題が発生しました。Conenct ( https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=363453 ) に報告し、MS はそれを修正するための DLL を送信してきました (動作しているようです)。私は、MS がすぐにパッチをリリースすることを期待しています。

SP1なしで問題があるため、役立つ場合とそうでない場合があります

于 2008-11-15T23:22:01.117 に答える