2003年にIIS 6を使用しています.IHttpAsyncHandlerから継承するHTTPハンドラのDLLを作成しました。 dllはinetpub \ www8080root \ common \ binディレクトリに作成されます。これはすべてのリクエストをインターセプトすることを意味します。HTTPハンドラのデバッグ
ウェブサイトはポート8080を監視するように設定されています。私はwww8080rootディレクトリに共通フォルダを作成し、それを指すようにII6で仮想ディレクトリを作成しました。 私はhttp://localhost:8080/common/index.htmlにアクセスするとHTTPハンドラは、私がイベントログに見たとき、私はそのハンドラ内でエラーを見ることができ、w3wp.exeののクラッシュの原因となる共通のディレクトリにあるweb.configファイル
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<compilation debug="true" defaultLanguage="c#" />
<httpHandlers>
<add verb="*" path="*"
type="x2Handler.x2Handler, x2Handler" />
</httpHandlers>
</system.web>
</configuration>
を作成クラッシュを引き起こした。私がVS 2005内でブレークポイントを設定すると、コードにヒットしません。
デバッグするには、IISで実行中のプロセスに何らかの形でアタッチする必要がありますが、要求を処理するとすぐにクラッシュします。
IISでHTTPハンドラDLLをデバッグするにはどうすればよいですか?私はここで説明したようにアタッチするaspnet_wp.exeプロセスを見ることができない。C#, Debugging an HTTPHandler
EDIT: Debugger.Breakを(追加することで)私は今、メッセージを受け取る「w3wp.exeのは、ブレークポイントをトリガしました」と、それは私を可能に>デバッグ環境を選択するが、それは私がツール - を設定するシンボル
No symbols are loaded for any call stack frame. The source code cannot be displayed.
せずにロードするオプション - >デバッグ:>マイコードのみ を有効にし、私はからシンボルをロードするために、共通の/ bin場所へのパスを設定します。どれでも手動で設定したブレークポイントは、まだ表示されます
The breakpoint will not currently be hit. No symbols have been loaded for this document.
EDIT: それはntdll.pdbのシンボルを探しているように見えるロードします。 httpHandlerのシンボルファイルを手動でロードしても、違いはありません。
コードは間違いなく実行されています。
参照しているシンボルは、ビジュアルスタジオの「デバッグ」構成でアプリケーションをビルドするときに作成されるシンボルデータベースです。ファイル拡張子は.pdbです。デバッガで使用できることを確認してください。 – jlafay