* [ASP.NET] Web アプリケーションのデバッグ [#q73268aa] Web アプリケーションを構築するとき、通常は「ASP.NET Web アプリケーション」を選択する。 その場合、プロジェクトを開く度に Web サーバへアクセスするので、 その分のオーバーヘッドがある為に遅いし、Web ディレクトリのアクセス権の設定などがやや面倒。 そこで、次のように単純アプリとしてデバッグするようにすると、開発者のストレスが減る。 ** Web アプリを 単純アプリ にしてしまう [#l1320cb3] Visual Studio .NET 2003 では、次の手順でプロジェクトを作成する。 - [ファイル] → [新規作成] → [プロジェクト] で、VB または C# のプロジェクトを選択して「ASP.NET Web アプリケーション」を選択する。 - プロジェクトの場所は Web サーバ上でなければ作成できないので、ここは Web 上のディレクトリ(http:// で始まる場所。デバッグをローカル環境で行う場合は localhost が Web サーバとなるはず)を選択する。このとき、この Web ディレクトリに対応するローカルディレクトリを確認しておく。 - プロジェクトに既存ファイルを追加する場合は、上記で作成された Web ディレクトリに対応するローカルディレクトリにファイルを配置(コピー)し、ソリューションエクスプローラなどから「既存項目の追加」を選択して追加する。このとき、デフォルトの位置が Web サーバ上のファイルを指すようになっているので、ローカルディレクトリからのパスでファイルを指定する(でないと、ディレクトリのアクセス権などいろいろ面倒)。 - プロジェクトをいったん閉じて、プロジェクトファイル(*.csproj)をテキストエディタなどで開く。その先頭の方に "ProjectType" という項目を見つける。これが「ProjectType="Web"」となっているので、これを空文字 "" にしてしまうか、或いは "Local" とする(空文字にした場合は、VS が自動的にここを "Local" に書き換えるみたい)。 - *.webinfo というファイルがあるので、それをテキストエディタで開く。 "URLPath" という項目を見つける。これが、Web サーバ上のパスになっているので、ローカルパスに書き換える。大抵は、「URLPath="http://(Web サーバ名)/(パス)/(プロジェクトファイル名; *.csprj)"」などとなっているので、これをプロジェクトファイル名だけ「URLPath=*.csprj」にしてしまえば良い。 - 再び、プロジェクトファイルを開く。プロジェクトのプロパティを開いて「共通プロパティ」の「出力の種類」が「クラスライブラリ」となっていることを確認する。他のものが選択されている場合は「クラスライブラリ」にする。 以上で、Web アプリケーションを 単純アプリケーションとして構築できるようになる。 ** デバッグ [#tfc99672] Visual Studio .NET 2003 で上記プロジェクトをデバッグするときは、以下の手順で行う。 - [デバッグ] → [プロセス] を開いて、選択可能なプロセスの中に「aspnet_wp.exe」を見つける。これがない場合は、IIS で ASP.NET が動作していないと思われる。 - [アタッチ] を選択して、「Common Language Runtime」にチェックをつける。これで OK とすると、デバッグが開始される(ブレークも有効)。これで、通常のアプリケーションと同様にデバッグできるようになる。 - [アタッチ] を選択して、「Common Language Runtime」にチェックをつける。これで OK とすると、デバッグが開始される(ブレークも有効)。 これで、通常のアプリケーションと同様にデバッグできるようになる。 ** 参考サイト [#z4d52ef4] 以上はあくまで''ヤクザなやり方''なので、一般的なデバッグ方法は下記を参照のこと。 - [[ASP.NET のトラブルシューティングとデバッグ:http://msdn2.microsoft.com/ja-JP/library/ms178643.aspx]] -- [[ASP.NET Web アプリケーションのデバッグ:http://msdn2.microsoft.com/ja-jp/library/w2faa92k.aspx]] - [[Visual Studio .NET で ASP.NET アプリケーションをデバッグするときの一般的なエラー:http://support.microsoft.com/default.aspx?scid=kb;ja;306172]] - [[ASP.NET Web アプリケーションをデバッグできない:http://support.microsoft.com/default.aspx?scid=kb;ja;318465]] ----- [[プログラム・開発系メモ]]