Visual Web Developer における Web サーバー
更新 : 2007 年 11 月
このトピックでは、Web サイトのテストと実行においてインターネット インフォメーション サービス (IIS: Internet Information Services) と組み込み ASP.NET 開発サーバーを使用する場合について説明します。
ASP.NET Web アプリケーションをテストまたは実行するには、Web サーバーが必要です。Microsoft オペレーティング システムの実行 Web サーバーは IIS です。IIS には、Web サーバー、ファイル転送プロトコル (FTP: File Transfer Protocol) サーバー、簡易メール転送プロトコル (SMTP: Simple Mail Transfer Protocol) 仮想電子メール サーバー、および他の機能が含まれます。IIS を実行するには、ネットワーク環境でサーバーとして機能するように設計された Windows のバージョンが必要です。たとえば Windows Server 2003 Web Edition などです。
Windows 2000 Server とそれ以前の Windows サーバー オペレーティング システムでは、IIS はオペレーティング システムの一部として既定でインストールされます。Windows XP および Windows Server 2003 では、IIS は既定ではインストールされませんが、コントロール パネルの [プログラムの追加と削除] の [Windows コンポーネントの追加と削除] オプションを使用して追加できます。Windows Server 2003 では、Application Server コンポーネントを使用して IIS をインストールできます。
次のような理由から、IIS を使用できない場合があります。
IIS をサポートしていない Windows XP Home Edition で、ASP.NET Web ページを開発している。
セキュリティ上の理由で、ローカル コンピュータ (たとえばホーム ネットワークの自分のコンピュータ) 上に Web サーバーをホストできない。IIS などの Web サーバーを実行するためには、サーバーをセキュリティで保護する余分な処理が必要になり、常に、最新のセキュリティ更新プログラムをインストールすることが必要になります。
社内ポリシーにより、IIS などの特定のサーバー コンポーネントをインストールできない。
ASP.NET 開発サーバー
Web サーバーとして IIS を使用できない場合でも、ASP.NET 開発サーバーを使用して ASP.NET ページをテストできます。ASP.NET 開発サーバーは、Windows XP Home Edition などの Windows オペレーティング システムでローカルに実行される、Visual Web Developer 付属の Web サーバーです。このサーバーは、ローカル ホスト シナリオ (Web サーバーと同じコンピュータから参照する) で ASP.NET Web ページを提供または実行するための Web サーバーです。つまり、ASP.NET 開発サーバーは、ローカル コンピュータ上のブラウザの要求に対してページを提供します。別のコンピュータに対してはページを提供しません。また、アプリケーション スコープ外にあるファイルも提供しません。ASP.NET 開発サーバーは、IIS を実行している運用サーバーにページを公開する前に、ローカルでページをテストするのに適しています。
ASP.NET 開発サーバーは、ローカル コンピュータ上の認証済み要求のみ受け入れます。このため、サーバーが NTLM 認証または Basic 認証をサポートできることが必要です。
メモ : |
---|
推奨方法としては、管理者としてログオンしているときには Visual Web Developer を実行しないようにします。より制限のあるアカウントで実行してください。これにより、サーバー上の他のファイルに不注意でアクセスすることを防ぎます。 |
ASP.NET 開発サーバーは、個々のページのみ処理でき、IIS が持つ特別な機能は備わっていません。たとえば、ASP.NET 開発サーバーでは SMTP メール サーバーをサポートしません。Web アプリケーションに電子メール メッセージの送信が含まれている場合、ASP.NET 開発サーバーでは電子メール メッセージを送信したり、これを行うサーバーを起動できないため、IIS SMPT 仮想サーバーにアクセスして、電子メールをテストする必要があります。
ASP.NET 開発サーバーの実行
ASP.NET 開発サーバーは、Visual Web Developer により既定でインストールされます。ファイル システム Web サイトを処理する場合、Visual Web Developer では、自動的に ASP.NET 開発サーバーが使用され、ページが実行されます。既定では、Web サーバーは、ローカル ホスト シナリオでランダムに選択されたポートで呼び出されます。たとえば、ExamplePage.aspx という名前のページをテストする場合、このページを ASP.NET 開発サーバーで実行すると、そのページの URL は次のようになります。
https://localhost:31544/ExamplePage.aspx
ブラウザを閉じると、ASP.NET 開発サーバーもシャットダウンします。
特定のポートで ASP.NET 開発サーバーを実行する場合、サーバーに対してそのポートを指定できます。このような状況は、次のようなシナリオにおいて発生します。
アプリケーション内のコードが特定のポートを待機している状態で、ASP.NET 開発サーバーを使用してアプリケーションをテストする場合。
アプリケーションに、特定のポートに関連付けられているクライアント プロジェクトまたは Web サービスへの参照が含まれている場合。
ファイル システム Web サイトの実行時に、指定したポートが使用されないこともあります。詳細については、「方法 : ASP.NET 開発サーバーのポートを指定する」を参照してください。
ASP.NET 開発サーバーのセキュリティ コンテキスト
ASP.NET 開発サーバーと IIS との重要な違いは、それぞれのサーバーが ASP.NET ページを実行する際のセキュリティ コンテキストです。この違いは、ページの実行方法に違いが出ることにより、テスト方法に影響します。
ASP.NET 開発サーバーを使用してページを実行すると、ページは、現在のユーザー アカウントのコンテキストで実行されます。たとえば、管理者レベルのユーザーとして実行する場合、ASP.NET 開発サーバーで実行されるページは、管理者レベルの特権を持ちます。一方、IIS では、ASP.NET は既定で、通常、制限付き特権を持つ特別なユーザー (ASPNET または NETWORK SERVICES) のコンテキストで実行されます。ASPNET アカウントまたは NETWORK SERVICES アカウントは、サーバー コンピュータ (ドメイン アカウントでない) に対してローカルとなり、他のコンピュータ上のリソースに対してはアクセスが制限されます。
ASP.NET ページ内のコードを単に読み込んで実行する場合には、この違いは特に重要ではありません。ただし、次のテストを実行する場合には、2 つの Web サーバーの異なるセキュリティ コンテキストが影響します。
ページが必要とする他のリソースへのアクセス これには Web ページ以外のファイルの読み書き、Windows レジストリの読み書きなどが含まれます。
データベース アクセス ASP.NET 開発サーバーを使用する場合、SQL Server にアクセスするには、通常 Windows 統合認証に依存できます。ただし、同じページを IIS で ASPNET アカウントまたは NETWORK SERVICES アカウントを使用して実行した場合、ページは、ローカル ユーザーのコンテキストで実行されるため、通常、ユーザーとパスワードの情報が含まれる接続文字列を使用するようにページを構成することが必要になります。詳細については、「Web アプリケーションから SQL Server へのアクセス」および「ASP.NET セキュリティのアーキテクチャ」を参照してください。
コード アクセス セキュリティ ページに、複数のゾーンで保護されたリソースへのアクセスが含まれている場合、このページは、ASP.NET 開発サーバーの場合と IIS の場合では異なって実行されます。
ASP.NET 開発サーバーを使用してテストした場合に、ページの実行に問題がなかった場合でも、後で、IIS を実行する実行 Web サーバーにページを発行してから、再度ページをテストする必要があります。
ASP.NET 開発サーバーでのファイルの承認
ファイル システム Web サイトでは、イメージやスタイル シートなどの静的ファイルは ASP.NET 承認を受けます。たとえば、ファイル システム Web サイト内の静的ファイルは、これらのファイルに対する匿名アクセスが無効になっている場合、匿名ユーザーからのアクセスを受け付けません。ただし、HTTP ロケーションで Web サイト プロジェクトを作成している場合は、IIS が承認規則を使用しないで静的ファイルを提供します。
参照
処理手順
チュートリアル : Visual Web Developer での基本的な Web ページの作成