3

私はこの質問をGoogleとStackOverflowで何度も見つけましたが、私のシナリオに答えるものはありません。

Webサービスをリモートでデバッグしようとしています。リモートデバッグが正しく設定され、最新のビルドを(pdbファイルとともに)デプロイし、デバッガーをリモートマシンのw3wpプロセスに接続しました。ただし、接続すると、すべてのブレークポイントが自動的に無効になります(現在、ブレークポイントはヒットしません。このドキュメントのシンボルはロードされていません)。誰かが私が間違っていることを知っていますか?

私はこれまでに次のことを試しました。

  • 高度なコンパイルオプションで「デバッグ情報の生成」を「フル」に設定します。
  • 高度なコンパイルオプションで「最適化を有効にする」を「False」に設定します。
  • モジュールウィンドウでは、シンボルステータスは「スキップされたロードシンボル」です。
    • シンボルを手動でロードしてみました
    • シンボル設定のシンボルファイルの場所をリモートpdbファイルに変更してみました
  • 展開前にソリューションをクリーンアップして再構築する
  • デバッグオプションで[JustMyCode]のチェックを外してみたところ、問題は解決したようですが、Webサービスを呼び出したときに、ブレークポイントに到達しませんでした。
  • このサイトは有望に見えましたが、結局は役に立ちませんでした
  • pdbはリモートマシン上にありますe
4

3 に答える 3

3

何度もいじった後、私は自分が望んでいたことを達成したようでした。

  • 高度なコンパイルオプション
    • 「デバッグ情報の生成」を「FULL」に設定します。
    • 「最適化を有効にする」を「False」に設定します。
  • シンボル設定のシンボルファイルの場所(デバッグ-モジュールウィンドウ)が正しい場所を指していることを確認します
    • リモートロケーションとローカルロケーションを.pdbロケーションに追加しました
  • 展開前にソリューションをクリーンアップして再構築する
于 2011-05-25T16:08:40.113 に答える
0

私はこれを機能させるための確実な方法を見つけたことがありません。IISでホストされているWCFサービスをデバッグしようとすると、同じプロセス(再構築、展開、サイトの再起動、接続)を繰り返し実行すると、シンボルが読み込まれる場合と読み込まれない場合があります。

私の場合、展開後に誰かがサイトに対して要求を行うにプロセスに接続したかどうかにかかっていました(つまり、IISをコンパイルしてファンキーな処理を実行しました)。

これらの手順を実行すると、次のように機能することがわかりました。

  1. ソリューションの再構築
  2. リモートサーバーに展開する
  3. IISを再起動します-これが必要かどうかはわかりません。アプリプールを再起動するだけで十分だと確信しています。
  4. ワーカープロセスを見つけてアタッチします- ブレークポイントはこの時点で無効になりますが、問題ありませんでした
  5. サイトから何かをリクエストする- 私はブラウザを使用してこれを行いました。これにより、IISは私のアプリをコンパイルしました。このコンパイルの前にVSをアタッチすることで、シンボルがロードされていることがわかりました(少なくとも以前よりもはるかに頻繁に)

たぶん同じプロセスがあなたのために働くでしょうか?

于 2011-05-25T10:12:39.333 に答える
0

私の場合、pdbをiisワーカープロセスパスにデプロイしていたので、すべてが正常であるはずであり、「スキップされた読み込みシンボル」が表示される理由が本当にわかりませんでした。気分が悪い(合理的な理由がない)という印象を受けました。

だから私はデバッグに興味のあるdllを右クリックし(複数のファイルを選択することもできます)、[シンボルの読み込み元]>[シンボルパス]を選択しました

そしてそれがそれらをロードさせました。

それから私はそれをデバッグすることができました。ありがとう!

于 2013-08-28T20:41:45.457 に答える