IIS Insider

2004 年 4 月

IIS Insider

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

By Brett Hill

トピック
COM および COM オブジェクトが IIS と連携する方法COM および COM オブジェクトが IIS と連携する方法
パスワードの変更をした後も、依然として古いパスワードが有効となるパスワードの変更をした後も、依然として古いパスワードが有効となる
有効な ASP ページのクエリを行うと、「ページが見つかりません」のエラーが発生する有効な ASP ページのクエリを行うと、「ページが見つかりません」のエラーが発生する

COM および COM オブジェクトが IIS と連携する方法

Q

IIS 5 上の ASP アプリケーションで、COM オブジェクトを使用して業務用の主要なアプリケーションを実装しています。そのオブジェクトは、Visual Basic を使用して作成しましたが、そのアプリケーションは、確実に動作しないようで、何が問題なのかよくわかりません。そのアプリケーションは、しばらく動作しますが、そのうちハングアップします。COM と IIS を使っている場合のアドバイスは何かありますか?

A

最適なアドバイスは、いろいろと調べることです。ご存知ない方のための説明として、COM (Component Object Model) は、すべての COM 対応アプリケーションから読み込むことができる実行可能ファイル (dll) を作成するマイクロソフトの標準のことです。IIS は、ASP、他のスクリプトまたは COM を使用するコンパイル言語を使用して、Web ベースのアプリケーションを配信することができます。COM “オブジェクト” と呼ばれるように、Visual Basic、Visual C++ などのマイクロソフトのプログラミング言語を使用して作成することができます。COM の IIS との連動は、複雑で、理解するのに時間がかかるかもしれません。私も IIS のことを長い期間勉強しており、開発者ではありませんが、COM が IIS と連携する方法を学ぶのに時間を掛けました。

上記のように、COM オブジェクトは、多くの言語を使用して作成することができます。IIS の管理者は、COM オブジェクトが Visual Basic 6 で記述されているかを知る必要があります。その場合、開発者がコンポーネントをコンパイルする際に、非常に重要な 2 つの機能を有効にする必要があります。それらの機能とは、「メモリに保持」 および「自動実行」です。(http://support.microsoft.com/default.aspx?scid=kb;ja;241896 を参照ください) ソースコードから COM オブジェクトを作成する際に、開発者がこれらのスイッチを設定した場合、IIS でそれらを実行する際に、問題が発生します。

これらの問題に加え、COM を使用する際に、"スレッド" に関連し、ここで説明していない問題が起こる可能性があります。この件に関しても、前述のサポート技術情報をご覧ください。

COM および IIS に関して、さらに知りたい場合は、Keith Brown著 "Programming Windows Security" をお勧めします。また、MSDN にて、COM Components for ASP (英語) および Designing COM Components for ASP (英語) などのサンプル情報をご覧ください。また、IIS 6が COM と連携する方法に、多くの変更が加えられました。

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

パスワードの変更をした後も、依然として古いパスワードが有効となる

Q

IIS 4 および IIS 5 サーバーを混合で使用し、インターネット上に Web アプリケーションを配布しています。ユーザーは、SSL で基本認証を使用して認証を行う必要があります。ユーザーのためにパスワードを変更すると、一定の期間古いパスワードを使用して、依然としてログオンできることに気づきました。IIS でユーザー パスワードの変更が有効とならないのはなぜですか?

A

ユーザーのログオン資格情報は、基本認証および匿名認証の両方で、IIS 上に 15 分間キャッシュされます。ユーザーのパスワードを変更し、ユーザーがパスワードの変更後、15 分間以内に IIS にログオンした場合、IIS は、キャッシュが更新されるまで古いパスワードを受け付けます。この問題は、ユーザーをグループに追加した場合、キャッシュが更新されるまで、グループ メンバシップが更新されない場合にも発生する可能性があります。IIS を終了し、起動することによりキャッシュを強制的に更新することができます。

IIS は、これらの資格情報 (基本認証および匿名認証を行ったユーザーの資格情報) をキャッシュし、パフォーマンスを向上させます。キャッシュが存在しない場合、すべてのアクセスで、認証を行う必要があり、パフォーマンスが大幅に低下する可能性があります。

資格情報がキャッシュされる時間を設定することができます。15 分の既定値から、増減し、時間を調整する必要がある場合があります。この調整を行うには、以下のマイクロソフト サポート技術情報 IIS におけるユーザー トークンのデフォルトの間隔の変更をご覧ください。

IIS 4 の最小値は 30 秒で、これを 0 に設定しても 30 秒の既定となることにご注意ください。IIS 5 では、最小値は、1 秒で、0 に設定しても 1 秒となります。これらの変更を有効にするには、すべての場合で IIS を再起動する必要があります。

IIS 6 では少し異なり、0 の値を設定するとキャッシュが無効となります。この場合、適切なアプリケーション プールをリサイクルし、キャッシュを更新する必要があります。また、レジストリの変更後、サーバーを再起動する必要がありません。

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

有効な ASP ページのクエリを行うと、「ページが見つかりません」のエラーが発生する

Q

公開している自分の Web サイトに ASP アプリケーションをポストする前に、Windows XP Professional コンピュータで、ローカルでテストをすることができるようにしたいと思います。IIS 5.1 をインストールしており、ASP ページを実行しようとすると、「ページが見つかりません」のエラーが起こります。ローカル コンピュータ名は、"localhost" で、http://localhost/directory/filename.asp のURL にアクセスしようとしています。ファイルは、\inetpub\wwwroot に配置されており、これは、既定の Web サイトにマップされています。

A

「ページが見つかりません」のエラーが起こった場合、IIS はリクエストを受け取り、応答しているため、問題のその部分は、トラブルシューティングを行う必要がありません。これは、アクセス権の問題ではありません。また、アクセス拒否のメッセージまたは認証プロンプトが表示されます。問題となる可能性が 2 点あります。まず、URLSCAN がインストールされた場合、.ASPの拡張子へのアクセスが拒否される可能性があります。そうでない場合、IIS は、ファイル名を見つけることができないと考える必要があります。これの最も一般的な原因は、ファイル拡張子が表示されないようにコンピュータをセットアップしたことです。(これは既定の設定です)たとえば、メモ帳でファイルを作成するか、または名前を変更し、default.asp として保存するとします。しかし、実際のファイル名は、default.asp.txtとなります。default.asp というファイルが必要な場合、IIS でそれを検索することができません。しかし、エクスプローラでファイルを検索すると、そのファイルは default.asp と表示されます。Windows XP および他のマイクロソフトのオペレーティングシステムを構成し、[マイ コンピュータ] − [コントロール パネル] - [フォルダ オプション] から [表示] タブに記載されている、「登録されている拡張子は表示しない」のチェックボックスをオフにし、ファイル拡張子を表示させることができます。(下図の Windows XP Professional の場合を参照ください)

folder options

関連情報

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

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