2012-01-03 22 views
0

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のシンボルファイルを手動でロードしても、違いはありません。
コードは間違いなく実行されています。

+1

参照しているシンボルは、ビジュアルスタジオの「デバッグ」構成でアプリケーションをビルドするときに作成されるシンボルデータベースです。ファイル拡張子は.pdbです。デバッガで使用できることを確認してください。 – jlafay

答えて

1

問題は.NetがバージョンIISより前にインストールされていたことです。私は、 "Edit configuration"ボタンが無効になっていて、このサイトが見つかったことに気づいた。http://www.warfiblog.com/edit-configuration-disabled。 次の手順:それはデバッグの問題を修正することをやって

You will need to go to Start -> Microsoft Visual Studio 2005 -> Visual Studio Tools -> Visual Studio 2005 Command Prompt. On the prompt write down this command: 
aspnet_regiis -r 
The above command will register dot net with IIS and now the button will also be enabled. 

2

例外が発生する数行前に数えてDebugger.Break()を追加します。これにより、デバッガをアタッチするよう求めるポップアップが表示されます。

+0

助けてくれてありがとう。あなたが言ったようにしましたが、私はまだデバッグできません。 –

+0

詳細は私の編集をご覧ください –

関連する問題