IIS Insider

2002 年 5 月

IIS Insider

Internet Information Services に関してよく寄せられる質問と答え

By Brett Hill

トピック
Windows XP Home Edition にIIS またはPWS をインストールすることができますか?Windows XP Home Edition にIIS またはPWS をインストールすることができますか?
ISAPI フィルタは別のプロセススペースで実行することができますか?ISAPI フィルタは別のプロセススペースで実行することができますか?
WebDAV を使用して ASP から文書を編集するコードの例WebDAV を使用して ASP から文書を編集するコードの例
「アクセスが拒否されました」 ASP を使用してデータベースにアクセス「アクセスが拒否されました」 ASP を使用してデータベースにアクセス
元の設定を復元しないで IIS Lockdown Tool を実行する方法元の設定を復元しないで IIS Lockdown Tool を実行する方法

Windows XP Home Edition にIIS またはPWS をインストールすることができますか?

Q

ASP.Net アプリケーションをWindows XP Home Edition を実行しているコンピュータ上で実行および開発することはできないという記事を読みました。Windows XP Home Edition を実行しているコンピュータ上でIIS または PWS のいずれかをインストールする方法はありますか? VS.Net Professional バージョンを所有しており、ASP.Net で開発する方法がわかりません。

A

Windows XP Home Edition ではIIS のすべてのバージョンがサポートされていません。私の知る限り、安定した方法ではIIS を実行することはできません。Windows XP Home Edition は Web ベースのアプリケーションの開発プラットフォームにするための設計がされていません。Windows XP Professional にアップグレードし、システムにIIS 5.1 をインストールし、ASP.Net での開発をすることができます。Windows XP Professional 上のIIS 5.1 は、フル装備の高性能な Web サーバーですが、ワークステーションのオペレーティングシステムで、サーバープラットフォームではないため、同時に実行できるのは 10 個の接続に限られています。サーバーオペレーティングシステムではなく、クライアントオペレーティングシステムとして使用されているWindows XP Professional と一致した制限が他にもいくつか存在します。一般的には、これらはWindows 2000 Professional、Windows 2000 Server/Advanced Server 上のIIS 5.0 で見られる相違点と同じです。しかし、Windows XP Professional はWeb ベースのアプリケーションを.NET フレームワークで開発するための優れた環境です。

ページのトップへページのトップへ

ISAPI フィルタは別のプロセススペースで実行することができますか?

Q

IIS 5.0 により ISAPI エクテンションを別のプロセススペースで実行することができます。これは ISAPI フィルタでも実行することができますか? IIS サーバーが ISAPI フィルタを含む自社のソフトウェアをインストールした 2、3 日後に常に再起動してしまうお客様がいます。最後のクラッシュダンプにより inetinfo.exe が "divide by 0 error" のためにクラッシュしたことがわかり、ISAPI フィルタではクラッシュしませんでした。inetinfo.exe でクラッシュしないようにするために別のプロセススペースで ISAPI フィルタを実行できたらうれしいのですが。

A

確認しておきますが Web サーバーで動作するように作成されたプログラムは、特定の要件があります。たとえば、ある URL から Notepad.exe のインスタンスを呼び出し、クライアントシステムで Notepad ウインドウを表示することはできません。実行可能ファイル(CGI 以外)を IIS からのリクエストとやりとりするためには、プログラムは ISAPI を使用して記述されている必要があります。ISAPI は Internet Server Application Programming Interface の略です。ISAPI 実行可能ファイルは、エクステンションとフィルタの 2 つの種類があります。

ISAPI エクステンションは、http://localhost/myisapi.dll のような URL から直接呼び出すことができます。この場合、IIS をスクリプトがディレクトリ上で実行できるように構成し、ユーザーが NTFS 実行アクセス許可を所有していると推測されるため、dll は実行されます。IIS では、そのアプリケーションがインプロセス(inetinfo の一部として)実行されるかまたは分離プロセス(IIS 4 上のMTX の一部として、または IIS 5.x の一部の dllhost として)で実行されるかどうかを指定することができます。アプリケーションが分離プロセスで実行される場合、inetinfo はおっしゃるような問題はなくなります。そのアプリケーションが異常終了する場合、Web サーバーも異常終了します。

ISAPI フィルタはまた別の問題です。ISAPI フィルタは IIS と通信されるデータストリームを変更することができます。そのため、ISAPI フィルタは高性能で、カスタムログ、認証の実行、データストリームの変更をするために使用することができます。ISAPI フィルタで IIS 5 のために実行される機能には、データ圧縮、認証、および URLScan などがあります。

フィルタは、IIS で重要な役割を果たすため、仕様上、常に inetinfo の一部としてインプロセスで実行されます。したがって、確認されたように、適切な ISAPI フィルタの構築はサーバーのパフォーマンスにとって不可欠です。私の提案としては、このような例外のトラブルシューティングは非常に困難であるため、マイクロソフト製品サポートサービスで、問題を確認し、解決することを推奨します。

この点を、より容易に行うことができるいくつかの新しい技術があります。1 つは、IIS 6 を視野に入れることです。新しいアーキテクチャによって、すべての ISAPI フィルタは分離プロセスで実行されます。これにより、Web サーバーを不規則な ISAPI フィルタから保護するという目的が達成されますが、この問題は実際に解決されません。その目的のためには、ISAPI フィルタの .NET 言語の機能を確認してください。同様の機能を .NET で実行すると、C++ を使用した標準の ISAPI フィルタデザインで大幅に簡素化されることがお分かりになると思います。

ページのトップへページのトップへ

WebDAV を使用して ASP から文書を編集するコードの例

Q

WebDAV を使用して、asp から文書を編集するためのコードのサンプルはどこで入手できますか?

A

IIS 上でスクリプトから WebDAV を使用するための最も確実な方法は、ASP.Net の WebClient クラスを使用する方法です。Windows XP または Windows Server 2003 を使用している場合、WebDAV 機能は、オペレーティングシステムの一部となります。これにより、HTTP を使用して Web サーバー上のファイルを UNC パス名を使用するのと同じ方法で参照することができるようになります。たとえば、NET USE * http://servername/directory でドライブをマップし、次にドライブ文字を使用してその場所にアクセスすることができます。または、WebDAV クライアントである COM オブジェクトを作成することができます。そのオブジェクトを使用し IIS 5.x または IIS 6.0 へ WebDAV 動詞を発行することができます。

また、MSDN (英語) でWebDAV の情報を検索すると、XML を使用して Exchange および他のマイクロソフトのサーバーに WebDAV クエリを作成する方法の多くの例を見つけることができます。http://msdn.microsoft.com/downloads/list/exchange.asp (英語) には WebDAV のサンプルアプリケーションが含まれています。

ページのトップへページのトップへ

「アクセスが拒否されました」 ASP を使用してデータベースにアクセス

Q

ASP でデータベースにアクセスしようとしていますが、データベースに新しいコンテンツを書き込むと常に「アクセスが拒否されました」という結果になります。ASP ページは Windows NT 4.0 ワークステーションおよび Peer Web サーバーを実行する際には問題なく動作しましたが、Windows XP Professional にアップグレードしIIS 5.1 をインストールした後、動作しなくなりました。特定のディレクトリへのアクセス権の問題のようにみられましたが、問題がどこにあるのかを確認するにはどうのうにしたらよいですか?

A

http://www.sysinternals.com/ から Filemon という優れたユーティリティを無償で利用することができます。IIS に関して人に教えるとき、私は、生徒たちにこのユーティリティをフロッピーディスクに保存して、行く先々に持っていくように言います。半分冗談ですが。Filemon は、サーバー上でアクセスされたすべてのファイル、呼び出しプロセス名、アクセスの結果をリアルタイムで表示するため、ほとんどのアクセス権に関する問題を即座に診断することができます。したがって、入れ子になったインクルード文に深く埋められていたとしても、または一時インデックスがわかりにくいとしても、「アクセスが拒否されました」というメッセージは、容易に識別できます。

あるオペレーティングシステム上で動作するアプリケーションをアップグレードした後に、問題がある場合には Filemon によっていらいらさせられる場合があります。しかし、この種類の問題から学ぶこともよくあります。IIS 4 および IIS 5 の違いの 1 つは、COM および COM+ の違いに関係しています。IIS 5 では、COM+ オブジェクトがユーザーの代わりにファイルを処理する際、既定でユーザーのセキュリティコンテキストを使用して行われます。IIS 4 ではユーザーのセキュリティコンテキストで実行されません。したがって、IIS 4 から COM に関連する IIS 5 にアプリケーションを移動する際、IIS 4 では必要でないファイルへのアクセス権をユーザーに割り当てることが必要となります。この場合、これは不便ですが、アプリケーションのセキュリティデザインは確実に向上されます。カスタム COM オブジェクトを使用しないでデータベースにアクセスする場合にも、COM は標準の IIS コンポーネントで広く使用されます。

この要件は、一時フォルダへのアクセス権限、データベースリクエストを作成するユーザーへの権限を割り当てる場合に必要となります。詳細はマイクロソフトサポート技術情報 210457 および 271071 をご覧ください。

ページのトップへページのトップへ

元の設定を復元しないで IIS Lockdown Tool を実行する方法

Q

いくつかの基本的なセキュリティ変更をシステムに適切に行ったと思われるサーバー上に IIS Lockdown Tool を実行しました。しかし、IIS Lockdown Tool の実行後、サーバーにいくつかの機能とコンテンツを追加し、IIS Lockdown Tool を再び実行しようとしました。しかし、IIS Lockdown ウィザードが開始され、以下のように表示されました。

IIS Lockdown Tool

この場合、メタベースに保存された IIS の構成への変更が失われるため、既存の設定はしたくありません。最初に復元を行わないで IIS Lockdown Tool を再び実行するにはどのようにしたらよいですか?

A

私の意見では、IIS Lockdown ツールはマイクロソフトの真のホームランヒットの 1 つです。おっしゃるように、このツールにより、サーバーのセキュリティを容易に大幅に向上させることができます。このツールを実行すると、<systemdrive>\<systemdir>\system32\inetsrv に配置されるファイル上の動作履歴を保存します。この情報は以下の名前のファイルに保存されます。

- Oblt-rep.log
- Oblt-once.md0
- Oblt-mb.md0

上記の「取り消し」のタスクを実行した場合、Oblt-undone.log というファイルも作成されます。

これらのファイルを削除した場合、IIS Lockdown Tool が実行されていないかのようにウィザードが開始されます。私の知る限り、このプロセスを繰り返しても危険はありません。これを実行する前に、必ず metabase.bin のコピーを作成してください。

このプロセスにより、Lockdown Tool は実行されなかったかのように実行されますが、最初に実行された際に Lockdown Tool が実装した設定を解除または無効にすることはないため、この場合、このプロセスはこの場合問題なく実行できます。


関連情報

これまでの IIS Insider コラムの質問と答えの一覧は、ここをクリックしてください。

ページのトップへページのトップへ