IIS 7 の 10 の主な変更点

公開日: 2007 年 12 月 22 日 (作業者: walterov (英語))

更新日: 2008 年 5 月 20 日 (作業者: walterov (英語))

Technet で「IIS 7 の 10 の主な変更点 (英語)」の原文が公開されています。

1.  簡単で構成可能なコマンド ライン セットアップ

サイトの実行に必要な IIS コンポーネントのみをインストール

例:

start /w pkgmgr /l:log.etw /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-
DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;IIS-ApplicationDevelopment;IIS-ASPNET;IIS-
NetFxExtensibility;IIS-ASP;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-ServerSideIncludes;IIS-HealthAndDiagnostics;IIS-
HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-Security;IIS-
ClientCertificateMappingAuthentication;IIS-IISCertificateMappingAuthentication;IIS-RequestFiltering;IIS-
IPSecurity;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;IIS-WebServerManagementTools;IIS-
ManagementConsole;IIS-ManagementScriptingTools;IIS-ManagementService;IIS-IIS6ManagementCompatibility;IIS-
Metabase;IIS-WMICompatibility;IIS-LegacyScripts;IIS-LegacySnapIn;WAS-
WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI 

2.  優れた互換性

99% 以上の ASP および ASP.NET アプリケーションが動作

  • 1 つのアプリケーションで互換性に影響する変更がありました。
  • ほんの一部のアプリケーションについては、統合モードで実行するために構成の移行が必要です。

(IIS で定義された約 260 のアプリケーションが www.microsoft.com で実行されています。数千ページ分のコードが実行不可能になるおそれがありましたが、問題なく正常に実行されています。)

統合パイプライン は新しい統合要求処理パイプラインです。以下のメリットがあります(英語)

  • ネイティブ モジュールとマネージ モジュールの両方で提供されるサービスを、ハンドラーに関係なくすべての要求に対して適用できます。たとえば、ASP ページ、CGI、静的ファイルを含むすべてのコンテンツにマネージ フォーム認証を使用できます。
  • ASP.NET コンポーネントを強化し、サーバー パイプラインでの配置が原因でこれまでは利用できなかった機能を提供します。たとえば、要求の書き換え機能を提供するマネージ モジュールは、認証を含めたあらゆるサーバー処理が実行される前に、要求を書き換えることができます。
  • サーバー機能の実装、構成、監視、サポートが 1 か所で行われます。たとえば、モジュールとハンドラーのマッピング、カスタム エラー、URL 承認などを一元的に構成できます。

Classic ASP モードで簡単にアプリケーションの移行が可能

  • ASP.NET セットアップで "Classic .NET AppPool" を使用できます。
  • 詳細については、「ASP.NET と IIS 7 の統合」を参照してください。

AppCmd を使用したアプリケーションの統合モードへの移行

  • %windir%\system32\inetsrv\APPCMD.EXE を使用して <Application Path> 構成を移行します。
  • AppCmd.exe の詳細については、「AppCmd.exe の使用の開始」を参照してください。

IIS 6 メタベース互換性 レイヤー

  • 従来の ADSI スクリプトが実行できます。
  • IIS 6 メタベース互換モジュールをインストールする必要があります。

3.  メタベースが不要に  

簡潔なクリア テキスト スキーマ

IIS 設定は XML 構成ファイル (applicationHost.config) に格納

  • メタベースは SMTP/NNTP/FTP 専用です。

容易にサイト全体を変更可能

  • applicationHost.config を更新して、すべての Web サーバーにコピーできます。
  • 大規模な ADSI ベースのスクリプト ソリューションに代わる、メタベース変更機能です。

Microsoft.com の考慮事項

  • 負荷のかかった状態の運用サーバーへのコピーには注意してください(新しい applicationHost.config をプッシュすると、アプリケーション プールとアプリケーションがリサイクルされます。キャッシュ機能への依存が高まっている場合は、CLR の再読み込み時に環境に問題が発生するおそれがあります)。

4.  構成の一元化

  • applicationHost.config は UNC 共有に格納
  • 2 台 (場合によっては 4 台) のサーバーにコピーするだけ

起こる可能性のある問題 - アカウントのパスワード変更を管理する際に、構成ストアに接続してしまう場合がありました (これは、ネットワーク サービスの使用頻度が高く、ネットワーク サービスが実行する UNC 共有を使用できないことが原因です。ネットワーク サービスは、現在ドメイン アカウントが必要です。ドメイン アカウントは定期的にパスワードを変更する必要があることが、セキュリティ ポリシーで定義されています)。

5.  構成の委任

管理者は IIS の設定をアプリケーション所有者に委任可能

設定は、アプリケーション ディレクトリにある web.config ファイルで定義

委任する設定の例

  • applicationHost.config の System.webServer セクション
  • キャッシュ機能、defaultDocument、httpErrors、セキュリティ

詳細については、構成の委任を参照してください。

6.  AppCmd およびその他の新しい管理オプション

UI による管理

  • モジュール型でタスク ベースの新しい外観
  • 右クリック/プロパティ パラダイムからの脱却

コマンド ラインによる管理

  • AppCmd

adsutil.vbs や iisapp.vbs などに代わるコマンド ライン ユーティリティ

サイト、アプリケーション、仮想ディレクトリ、アプリケーション プール、モジュール、トレース、その他の Powershell をコマンド ラインで管理

IIS 用 Powershell コマンドレットの開発に意欲的な IIS コミュニティ

MSCOM の考慮事項

  • AppCmd の制約 - リモートからの使用不可
  • Powershell の IIS プロバイダーはなし

7.  失敗した要求のトレース

要求のトレース イベントをバッファーし、失敗の条件に一致するイベントをディスクに記録

トレース データを無人でキャプチャ

失敗した要求の処理によるパフォーマンスへの影響はごくわずか

クイック テスト: すべてのファイル拡張子とエラーに対してトレースを無効にすると、最大ストレス負荷での 1 秒あたりの要求が約 5% 減少 (運用環境ではこのテストは実行しないでください)

現在実行中の要求を AppCmd に表示

  • appcmd list requests (すべての要求を表示)
  • appcmd list requests /apppool.name:DefaultAppPool

新しいタスク スケジューラー

  • イベント時のタスクのトリガー

詳細については、失敗した要求のトレースを参照してください。

8.  要求のフィルタリング

URLScan が不要に

applicationHost.config の </requestFiltering> 設定

Microsoft.com の問題: ファイル名に "+" が含まれる場合、allowDoubleEscaping を "true" に設定する必要がある

  • <requestFiltering allowDoubleEscaping="true">

特定のファイル拡張子と動詞を許可/拒否

  • <add fileExtension=".exe" allowed="false" />

DenyURLSequences

  • <add sequence="./" />
  • <add sequence="/." />

RequestLimits

  • maxAllowedContentLength="1000000"
  • maxUrl="260"
  • maxQueryString="2048"

9.  UNC コンテンツ

コンテンツの同期の簡略化

ハードウェアのフットプリントを削減 (コスト削減の可能性あり)

  • 業界の一般的な問題点

10.  動的コンテンツの出力キャッシュ

  • バックエンドへのオフボックスの呼び出しと依存関係が減少
  • パフォーマンスの大幅な向上
  • https://www.microsoft.com/ja/jp/default.aspx に対する簡単な WCAT (Web Capacity Analysis Tool) ストレス テスト

一部のアプリケーションには適していません (たとえば、個人向けに自由にカスタマイズされた出力を行うアプリケーションには有効ではありません)。