Web アプリケーションを構築するとき、通常は「ASP.NET Web アプリケーション」を選択する。
その場合、プロジェクトを開く度に Web サーバへアクセスするので、
その分のオーバーヘッドがある為に遅いし、Web ディレクトリのアクセス権の設定などがやや面倒。
そこで、次のように単純アプリとしてデバッグするようにすると、開発者のストレスが減る。
Web アプリを 単純アプリ にしてしまう †
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 アプリケーションを 単純アプリケーションとして構築できるようになる。
デバッグ †
Visual Studio .NET 2003 で上記プロジェクトをデバッグするときは、以下の手順で行う。
- [デバッグ] → [プロセス] を開いて、選択可能なプロセスの中に「aspnet_wp.exe」を見つける。これがない場合は、IIS で ASP.NET が動作していないと思われる。
- [アタッチ] を選択して、「Common Language Runtime」にチェックをつける。これで OK とすると、デバッグが開始される(ブレークも有効)。
これで、通常のアプリケーションと同様にデバッグできるようになる。
参考サイト †
以上はあくまでヤクザなやり方なので、一般的なデバッグ方法は下記を参照のこと。
プログラム・開発系メモ