[方法] InfoPath Forms Services で展開されたブラウザ対応のフォームをデバッグする方法
Microsoft Visual Studio 2005 と Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System または Visual Studio 2008 と Visual Studio Tools for Office から InfoPath Forms Services に展開されたブラウザ対応のフォームのビジネス ロジックをデバッグするには、デバッガを手動でサーバー プロセス (w3wp.exe) にアタッチし、「Web パーツのデバッグ」または「ASP.NET アプリケーションのデバッグ」と同様のプロセスに従ってください。
ブラウザ対応のフォーム テンプレート用ビジネス ロジック コードは 1 つ以上のアセンブリからサーバーに展開され、読み込まれます。以下の情報では、1 つの Web フロントエンドがあるスタンドアロン インストールを使用しており、管理者として対話セッションを開いたことを想定しています。リモート デバッグは、「リモート デバッグのセットアップ」のガイドラインに従い、以下に説明する手順に従って行うこともできます。
デバッグ用フォーム テンプレートをビルドする
サーバーにあるフォーム テンプレートのビジネス ロジック アセンブリをデバッグするには、コンパイラでデバッグとプロジェクトの状態情報を生成し、デバッグ シンボル ファイル (.pdb) に格納するように構成する必要があります。このファイルはサーバーで利用できるようにする必要があります。Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System を使用してフォームが開発された場合、以上の処理がデバッグ構成をビルドするときに行われます。これは、InfoPath フォーム テンプレート プロジェクトの既定の構成です。リリース構成の場合、既定ではデバッグ情報は生成されません。この設定を変更するには、ソリューション エクスプローラでプロジェクトを右クリックし、[プロパティ]、[ビルド]、[詳細設定] の順にクリックし、[デバッグ情報] ボックスの一覧の [完全] をクリックします。どちらの場合も、Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System では、フォーム テンプレート .xsn ファイルとフォーム マニフェスト ファイルの該当するエントリを生成し、.pdb ファイルがサーバーに自動的に展開され、読み込まれるようにします (ビルド構成設定を変更するには、[ビルド] メニューの [構成マネージャ] を使用します)。
デバッグ操作を行うユーザーには、フォーム テンプレートに関連付けられたすべてのビジネス ロジック アセンブリのソース コードへのアクセス権も必要です。ソース コードはフォーム テンプレート自体には含まれません (フォーム テンプレート プロジェクト フォルダに含まれます)。ソース コードはフォームの設計者がアクセス可能にする必要があります。
デバッガをアタッチする
デバッグを開始する前に、次の手順に従ってサーバー プロセス (w3wp.exe) のすべてのインスタンスにアタッチする必要があります。
サーバー プロセスにデバッガをアタッチするには
Visual Studio を開き、[ツール] メニューの [プロセスにアタッチ] をクリックします。
[選択]、[次のコードの種類をデバッグする] の順にクリックし、[マネージ] チェック ボックスをオンにして、[OK] をクリックします。
[全ユーザーのプロセスを表示する] と [すべてのセッションのプロセスを表示] チェック ボックスをオンにします。
[選択可能なプロセス] ボックスに一覧表示される w3wp.exe プロセスのすべてのインスタンスにデバッガをアタッチします。
[アタッチ] をクリックします。
コードを実行し、デバッグする
フォーム テンプレート ビジネス ロジックは、展開時および実行時の 2 回実行されます。デバッグの観点からは、どちらも同じように動作します。デバッガのアタッチ後、どちらのシナリオもデバッグできます。
展開時シナリオをデバッグするには、サーバーの [サーバーの管理]、[アプリケーション構成の管理]、または [フォーム テンプレートの管理] ユーザー インターフェイスからフォーム テンプレートをアップロードします。
実行時シナリオをデバッグするには、展開先の URL からフォームを開くか、InfoPath ユーザー インターフェイスを使用してフォームにアクセスします。
Visual Studio のすべてのデバッグ サポートを使用できます。ブレークポイントの設定、コードのステップ スルー、変数と呼び出しスタックの検査などの一般的な作業は通常どおり動作します。フォーム コードをデバッグする場合、コード実行中に異常な状況が発生したときにデバッガが停止するように、例外処理デバッグを有効にすると便利です。