IIS Insider - February 2006

By Jeffrey C. Tindillier, IIS MVP, iis-resources.com

IIS Insider は、トラブルシューティングおよび Microsoft Internet Information Services を最大限利用する方法に関して、みなさんからの質問にお答えする月例のコラムです。

IIS Insider

文中にある企業、組織、製品、ドメイン名、電子メール アドレス、ロゴ、人、場所および出来事は架空の話です。実際の企業、組織、製品、ドメイン名、電子メール アドレス、ロゴ、人、場所または出来事を意図したり、関連するものではありません。

トピック
IIS 5.1 に対する NTFS のアクセス許可を設定するIIS 5.1 に対する NTFS のアクセス許可を設定する
IIS バージョン 7 を入手するIIS バージョン 7 を入手する
IIS 6 および Kerberos 問題のトラブルシューティングIIS 6 および Kerberos 問題のトラブルシューティング
Debug Diagnostics ツールを使用するDebug Diagnostics ツールを使用する
**
**

IIS 5.1 に対する NTFS のアクセス許可を設定する

Q

自分が作成している IIS 5.1 ベースの Web サイトのバックエンドとして Microsoft Access のデータベースを使用しています。「挿入」を実行しようとすると、新しい列が挿入できないというエラー メッセージが出ます。この問題を解決するには、NTFS のアクセス許可を自分のデータ ベースに設定する必要があるのだと思います。適切な許可を設定するにはどうしたらいいですか?

A

IIS 5.1 は Windows XP Professional の一部であり、Web のアプリケーションを展開するための低費用のソリューションを提供します。IIS 5.1 はあなたが試行しているような、展開の目的だけに使用されるべきです。コンピュータの安全を確保するために、以下をインストールすることを推奨します。

IIS Lockdown ツール

Windows XP Service Pack 2

あなたの問題に対処するために、一般的な原則として Windows XP Professional を実行しているコンピュータで NTFS のアクセス許可を設定する必要はありません。Windows XP Professional のコンピュータのアクセス許可を変更できますが、その場合それ以上の問題を発生させないように特に 気をつけてください。

既定で、Windows XP Home Edition または Windows XP Professional を実行しているコンピュータでアクセス許可を設定できません。なぜなら、「簡易ファイルの共有」が有効になっているからです (Windows XP Home Edition - ベースのコンピュータは常に「簡易ファイルの共有」が有効です)。

Windows XP Professional で「簡易ファイルの共有」を無効にする

1.

エクスプローラを開きます。

2.

[ツール] メニューで、 [フォルダオプション] をクリックします。

3.

[表示] タブをクリックして、 [簡易ファイルの共有を使用する (推奨) のチェックボックスのチェックをはずしてから OK をクリックします。

Use simple file sharing (recommended) checkbox

これから、データベースにみなさんのコンピュータ名を追加します。

1.

Access を表示して、データベースを右クリックし、 [プロパティ] をクリックします。

webdata

2.

[セキュリティ] タブをクリックして、[追加] をクリックします。「ユーザー/グループの選択」のダイアログ ボックスが表示されます。

Select Users or Groups

3.

IUSR_MachineNameを入力します。 MachineName はみなさんのコンピュータの名前です。この例では、私のコンピュータ名は JCT-BF084D4751B なので、それを入力して [名前の確認] をクリックします。これにより、正しい匿名ユーザー ID が使用されていることを確認します。

注: Windows XP は、[名前の確認] をクリックした際に、コンピュータ名をユーザー アカウントに追加します。

ここで、Web サイトのコードはデータベースの挿入を行なうことが可能です。

Windows XP Professional、 IIS 5.1、および NTFS のアクセス許可に関する詳細については、サポート技術情報 308418をご覧ください。.

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

IIS バージョン 7 を入手する

Q

さまざまなブログや Web サイトで IIS 7.0 が近日リリースされることについて読みましたが、自分のコンピュータにインストールしたいと思っています。詳細情報の入手、および IIS 7.0 のダウンロードはどこでできますか?

A

この質問は、IIS newsgroups (英語情報) およびさまざまなオンラインのコミュニティでもっとも一般的に見られる質問のひとつです。Windows 2000 のリリース以来、IIS はオペレーティング システムの一部となっているので、別にダウンロードすることはできません。マイクロソフトは Windows Vista および「Longhorn」というコード名である次のバージョンの Windows Server に Web サーバー (IIS 7.0) を搭載してリリースする予定です。

IIS 7.0 のプレ リリースのバージョンを入手するにはいくつかの方法があります。TechNet または MSDN を購読している場合は、Windows Vista ベータ 2 のプログラム (IIS 7.0 が含まれます) に参加可能です。さらに、今年後半には、Windows Vista のパブリック ベータ プログラムにより、パブリック テストでプレリリース コードがより幅広くご利用になれます。Pre-release versions of Windows Server "Longhorn" (英語情報) は現在プライベート ベータ テスターのみがご利用になれます。しかし、Community Technology Preview (CTP) のプログラムは、通常マイクロソフトのお客様に製品開発の初期の段階で参加していただくためのイニシアチブであり、この先数ヶ月のパブリックなプレリリースのバージョンの詳細を提供します。

IIS 7.0 はトラブルシューティングの時間短縮のための第一級の診断システム同様、最新の設定のシステム、見栄えの良い新しいグラフィカルなインターフェイスを提供します。さらに、初めて IIS がモジュール化されます。管理者または開発者が IIS のワーカー プロセスによりダウンロード可能なモジュールを有効/無効にできます。例えば、みなさんの Web サイトにリクエストをログしたい場合、ログのモジュールをインストール、または .NET を実行したい場合、そのためのモジュールがあります。開発者にとって IIS 7.0 の非常に興味深い部分はユーザーが IIS 7.0 でさまざまなことを行なうために、既存の C++ 言語または制御されたコード (.NET) を使用して独自のモジュールを書けることです。

DNS は、TLD で始まる階層的な方法で設定されます。ホスト アドレスを検出するのは非常に容易です。コンピュータは最初に TLD を検出し、正しいドメインへ移ります。それからホストへ向かいます。

IIS 7.0 Operations Guide (英語情報)

IIS 7.0 Administration Reference (英語情報)

IIS 7.0 Extensibility SDK (英語情報)

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

IIS 6 および Kerberos 問題のトラブルシューティング

Q

IIS 6 および Kerberos のいくつかの問題のトラブルシューティングを手助けする必要があります。構成の確認に役立ちそうな、手順に関するガイドやチェックリストなどがありますか?

A

認証の問題はたびたび IIS のユーザーに問題をもたらします。残念ながら、認証は明確で決定的な解決策を提供しません。そこには多くの根本的な原因があります。Windows 統合認証は一般的な問題で、役立つリソースがいくつかあります。

White Paper: Troubleshooting Kerberos Delegation (英語情報)

IIS Diagnostics Toolkit (英語情報)

特に、"Authentication and Access Control Diagnostics 1.0 (AuthDiag) " (英語情報) と呼ばれるツールは認証に関連した問題の検出に役立ちます。 AuthDiag でのトレーニングに関しては、以下の Webcast をご覧ください。

Using AuthDiag to Diagnose Problems with Authentication and Authorization in IIS (英語情報)

あなたの状況に関する情報が限られている場合、チェックしていただきたいほかの項目を提供します。

サーバーすべてが同じドメイン/フォレストに属していますか? そうでない場合、ドメイン間に適切な信頼が設定されているか確認してください。

IIS サーバーは「委任に対して信頼する」と設定されていますか? これは以下のように、Active Directory ユーザーおよびコンピュータ MMC で行なわれます。

     Domain\Computers\Computer name\Properties\

Windows 2000 - 混在のドメイン:

     [全般] タブで、[コンピュータを委任に対して信頼する]選択してください

Windows Server 2003 - 既存のドメイン:

     「委任」タブで、少なくとも [コンピュータを委任に対して信頼する]選択してください

重要: Active Directory でこの設定を変更した後、kerbtray.exe を使用するか、クライアントの Kerbtray.exe (英語情報) で LogOff/LogOn によりクライアント側のチケットを消去する必要があります。

消去される必要のあるアカウントが Active Directory で「アカウントは重要なので委任できない」とされていないことを確認してください。Active Directory ユーザーおよびコンピュータの MMC でできます。

     \UserAccount\Properties\Account Tab\Account オプション

バックエンド サーバーが MCS クラスタである場合、サポート技術情報 235529: Windows 2000 ベースのサーバー クラスタでの Kerberos サポート に述べられている構成を検証してください。

クライアントのコンピュータで、IIS6 により提供されている場合、Internet Explorer が Kerberos を使用しているか確認してください。

1.

Internet Explorer で、[ツール] メニューをクリックして、[インターネットオプション] をクリックしてください。

2.

[詳細設定] タブを選択して、[統合 Windows 認証を使用する] のオプションが選択されていることを確認してください。

IIS が NLB で負荷分散されていたら、以下の手順に従ってください。http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/security/kerbnlb.mspx (英語情報)

ここで、みなさんの IIS 6 の構成を確認することが必要です。

Web サイトまたは仮想ディレクトリを要求しているクライアントは、権限を借用する必要があります。アプリケーションが権限のあるユーザーを委任する必要がある場合、その Web サイト/仮想ディレクトリは IIS MMC による匿名アクセスを使用する設定にされていません。

\Website\Virtual Directory\Properties\Directory Security\Authentication Methods

     [匿名アクセスを有効にする]選択されていない
     [統合 Windows 認証を使用する]選択されていない

[統合 Windows 認証を使用する] が有効であることを確認した後、以下のメタベースのプロパティの設定を確認して Kerberos が可能であるか確認してください。

     NTAuthenticationProviders

「NTLM の取り決め」または、「Kerberos の取り決め」が有効にされるようにこのプロパティを設定してください。これを確認するには、以下のコマンドをコマンド プロンプトで使用してください。

     Cscript adsutil.vbs get w3svc/NTAuthenticationProviders

以下のように返してきます。

重要: このプロパティはメタベースの構成でさまざまなレベルで設定されることが可能です。正しい設定が表示されていることを確認するために、Kerberos を実行させたい Web サイト、仮想ディレクトリ、ディレクトリまたはファイルにこのプロパティがあることを確認します。以下のコマンドを使用することにより、メタベース内のどこかにこのプロパティが設定されていることを容易に判断できます。

     Cscript adsutil.vbs find NTAuthenticationProviders

IIS で実行しているアプリケーションが ASP.Netのアプリケーションである場合、ASP.Net のアプリケーションがクライアントを借用していることを確認してください。これを確認するには、Web アプリケーション フォルダにある Web.config ファイルを表示して、<System.web> のセクションの下で、借用のための要素である <identity impersonate="true" />が設定されているかを確認します

IIS に追加のサービス プリンシパル名 (SPN) を設定する必要があるか確認してください。これは、IIS の構成によります。サービスは SPN と共に Active Directory に登録されています。これは、Kerberos を実行するために必須です。SPN の変更を行なうために、SetSPN.exe utility を使用してください。

バックエンドサービスの構成:

私たちはしばしばリモート システムを「バックエンド サービス」と考えますが、これは IIS が「偽装された」ユーザーのトークンを委任している場所を示します。これは、Active Directory に登録された有効な SPN が必要です。さもないと、Kerberos のトラフィックが IIS とバックエンド サービス間で失敗します。

バックエンドはファイル サーバー、SQL サーバーまたは別の Web サーバー (IIS) の可能性があります。このコラムでは、すべての設定可能なバックエンドのサービスおよび必要とされる SPN については取り扱いません。

SQL サーバーはこの種類のシナリオで最も一般的なバックエンドなので、SQL サーバーの設定に関して、追加のリソース (サポート技術情報) を挙げます。

811889 "SSPI コンテキストを生成できません" エラー メッセージのトラブルシューティング方法

319723 [INF] サーバー クラスタ上の SQL Server 仮想サーバーを含む SQL Server 2000 の Kerberos サポート

SQL 分析サーバーに関しては以下を確認してください。

828280 Kerberos 認証を使用するように分析サーバー コンピュータを構成する方法

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

Debug Diagnostics ツールを使用する

Q

助けてください! 突然、私の IIS 6 の Web アプリケーションがクラッシュしました。イベント ログを確認しましたが、IIS に関係したエラーはありません。何が起こったのか確認して、問題の解決方法を得るために助けてください。

A

まず、この状況でいつもお尋ねするのは、サーバーで何が変更されたかです。最近新しいコードを展開しましたか? サービス パックや修正プログラムなどを適用しましたか? あなたがおっしゃったようにイベント ログにはエラーが無いようなので、問題を追跡する最適な方法はメモリのダンプをとらえるために Debug Diagnostics を使用することです。

Debug Diagnostics のツールをダウンロードする

まず行なわなければならないことは、Debug Diagnostics のツールをダウンロードです。Debug Diagnostics は最近 IIS Diagnostics Toolkitの一部としてリリースされました。

Debug Diag をインストールする

     セットアップの種類のダイアログ ボックスで、Typical Installation を選択します。

Debug Diagnostic ツールを使用する

1.

Debug Diagnostic ツールを表示します。

下のような新たなルール ウィザードが表示されます。

Debug Diagnostic Tool

2.

クラッシュ ルールを作成して、[次へ]をクリックしてください。

3.

どのプロセスがクラッシュしているのかわからないので、All IIS Related processesを選択して[次へ]をクリックしてください。

Select Target Type

4.

この時点で、詳細設定のオプションの設定をする必要はありませんから、[次へ] をクリックしてください。

Advanced Configuration Options

5.

みなさんのルール名を入力して、userdump の場所のパスを入力してください。

Select Dump Location and Rule Name

: これらのメモリ ダンプがかなり大きくなる可能性があるので、ディスクに十分な容量があるパーティションを選択することを必ず確認してください。

6.

[次へ] をクリックして、[Activate the rule now] を選択し、[完了]をクリックします。

Rule Complated

メインの Debug Diagnostic ツール ウィンドウがみなさんの今作成したルールを表示します。みなさんのルールのあるラインでは、 Userdump のカウントが 0 に設定されていることに注意してください。次に ISS がクラッシュした際に、Debug Diag はメモリ ダンプを取り込みます。したがって、Userdump のカウントは 1 まで上がります。

メモリの取り込みを分析する

1.

Debug Diagnostic のツールを表示して、Advanced Analysisのタブをクリックします。

Advanced Analysis

2.

データ ファイルのセクションで、Add Data Files ボタンをクリックし、Debug Diagnostic Tool が今みなさんのために作成したダンプ ファイルを追加します。

3.

ご利用になれる分析スクリプトのセクションの Crash/Hang アナライザのスクリプトを強調表示して、Start Analysisボタンをクリックしてください。これにより、IIS で何が起こっているのか、そしてクラッシュ時の関連する全てのプロセスに関して、優れた HTML ベースのレポートを生成する分析スクリプトを開始します。分析スクリプトがみなさんのメモリ ダンプで何か興味深いものを見つけたら、レポートの最初でそれを告げ、可能な解決策を提供します。

将来のコラムでは、http://www.microsoft.com/japan/whdc/devtools/debugging/default.mspx でご利用になれる Windows の Debugging Tools を使用したメモリ ダンプの詳細な分析について議論します。

Debug Diagnostics 1.0 の詳細なトレーニングに関しては、IIS Webcast Series (英語情報) で以下の Webcast をご覧ください。

IIS Architecture Overview

Overview of Debugging Tools

The Ins and Outs of Hangs in IIS

The Inside Scoop on Diagnosing Memory Leaks in IIS

Understanding and Diagnosing Crashes in IIS


関連情報

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

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