次の方法で共有


FTP キャッシュ <caching>

概要

<caching> 要素は、FTP サービスの資格情報設定を指定します。

FTP サービスは、パフォーマンス上の理由からユーザー資格情報をキャッシュするため、クライアントの認証に必要な時間が短縮され、使用中のセキュリティ ストア内のユーザー資格情報の検索に関連するオーバーヘッドが軽減されます。 たとえば、FTP 基本認証を使う場合、ユーザーの資格情報は、FTP サービスが実行されているサーバーまたはドメイン コントローラー上のローカル アカウント データベースに格納されます。 .NET メンバーシップ資格情報を使っている場合、ユーザー アカウントはデータベースに格納されます。 ドメイン アカウントまたはメンバーシップ データベースがリモート コンピューターに格納されている場合、資格情報のキャッシュは、アカウントの検証に必要な時間を相殺するのに役立ちます。 アカウント ログイン数が多い FTP サーバーでは、これによりパフォーマンスが大幅に向上する可能性があります。

セキュリティ要件により、資格情報をすぐにフラッシュする必要がある場合は、環境に合わせて資格情報のキャッシュを構成できます。 たとえば、FTP サイトに正常にログインした後にパスワードを変更すると、キャッシュ タイムアウトの間、古い資格情報がキャッシュされる可能性があります。これが定期的に発生する可能性が高いネットワーク トポロジでは、キャッシュ タイムアウトを減らすか、キャッシュを無効にすることができます。

FTP 7.0、FTP 7.5、FTP 8.0 では、資格情報のキャッシュが既定で有効になっています。 資格情報は 15 分間キャッシュされます。 キャッシュ内の資格情報の有効期間は flushInterval 属性で指定され、FTP サービスを再起動することで資格情報を手動でフラッシュできます。

互換性

バージョン メモ
IIS 10.0 <caching> 要素は、IIS 10.0 では変更されませんでした。
IIS 8.5 <caching> 要素は、IIS 8.5 では変更されませんでした。
IIS 8.0 <caching> 要素は、IIS 8.0 では変更されませんでした。
IIS 7.5 <system.ftpServer> 要素の <caching> 要素は、IIS 7.5 の機能として付属しています。
IIS 7.0 <system.ftpServer> 要素の <caching> 要素が、IIS 7.0 用の別個のダウンロードとして FTP 7.0 で導入されました。
IIS 6.0 該当なし

Note

FTP 7.0 サービスと FTP 7.5 サービスは IIS 7.0 とは別に出荷され、次の URL からモジュールをダウンロードしてインストールする必要がありました。

https://www.iis.net/expand/FTP

Windows 7 と Windows Server 2008 R2 では、FTP 7.5 サービスは IIS 7.5 の機能として付属しているため、FTP サービスのダウンロードは必要なくなりました。

段取り

Web サーバーの FTP 公開をサポートするには、FTP サービスをインストールする必要があります。 そのためには、次のステップに従います。

Windows Server 2012 または Windows Server 2012 R2

  1. タスク バーで [サーバー マネージャー]をクリックします。

  2. [サーバー マネージャー] で、[管理] メニューを選択し、[役割と機能の追加] を選択します。

  3. [役割と機能の追加] ウィザードで、[次へ] をクリックします。 インストールの種類を選択し、[次へ] をクリックします。 対象サーバーを選択し、[次へ] をクリックします。

  4. [サーバーの役割] ページで、[Web サーバー (IIS)] を展開して、[FTP サーバー] を選びます。

    Note

    FTP サービスに対して ASP.NET メンバーシップ認証または IIS マネージャー認証をサポートするには、[FTP Service] に加えて[FTP 拡張] も選択する必要があります。
    [サーバーの役割] ページのスクリーンショット。[F T P サーバー] ノードが展開され、[機能拡張] が選択されています。 .

  5. [次へ] をクリックし、[機能の選択] ページで再度 [次へ] をクリックします。

  6. [インストール オプションの確認] ページで、[インストール] をクリックします。

  7. [結果] ページで、 [閉じる]をクリックします。

Windows 8 または Windows 8.1

  1. [スタート] 画面で、ポインターを左下隅まで移動し、[スタート] ボタンを右クリックし、[コントロール パネル] をクリックします。

  2. [コントロール パネル][プログラムと機能] をクリックし、[Windows の機能の有効化または無効化] をクリックします。

  3. [インターネット インフォメーション サービス] を展開し、[FTP サーバー] を展開します。

    Note

    FTP サービスに対して ASP.NET メンバーシップ認証または IIS マネージャー認証をサポートするには、[FTP 拡張] も選択する必要があります。
    [F T P 拡張機能] が強調表示された [インターネット インフォメーション サービスと F T P サーバー] ウィンドウのスクリーンショット。

  4. OK をクリックします。

  5. 閉じるをクリックします。

Windows Server 2008 R2

  1. タスク バーで [スタート] をクリックし、[管理ツール] をポイントして、[サーバー マネージャ] をクリックします。

  2. [サーバー マネージャ] 階層ウィンドウで [役割] を展開し、[Web サーバー (IIS)] をクリックします。

  3. [Web サーバー (IIS)] ウィンドウで、[役割サービス] セクションまでスクロールし、[役割サービスの追加] をクリックします。

  4. [役割サービスの追加] ウィザード[役割サービスの選択] ページで [FTP サーバー] を展開します。

  5. [FTP Service] を選択します。

    Note

    FTP サービスに対して ASP.NET メンバーシップ認証または IIS マネージャー認証をサポートするには、[FTP 拡張] も選択する必要があります。
    [役割サービスの追加ウィザード] の [役割サービスの選択] ページのスクリーンショット。[F T P サーバー] ノードが展開され、[F T P サービス] が選択されています。

  6. 次へ をクリックします。

  7. [インストール オプションの確認] ページで、[インストール] をクリックします。

  8. [結果] ページで、 [閉じる]をクリックします。

Windows 7

  1. タスク バーで、[スタート][コントロール パネル] の順にクリックします。

  2. [コントロール パネル][プログラムと機能] をクリックし、[Windows の機能の有効化または無効化] をクリックします。

  3. [インターネット インフォメーション サービス][FTP サーバー] の順に展開します。

  4. [FTP Service] を選択します。

    Note

    FTP サービスに対して ASP.NET メンバーシップ認証または IIS マネージャー認証をサポートするには、[FTP 拡張] も選択する必要があります。
    [F T P 拡張機能] と [F T P サービス] の両方が選択されていることを示す展開された [インターネット インフォメーション サービスと F T P Server] ノードのスクリーンショット。

  5. OK をクリックします。

Windows Server 2008 または Windows Vista

  1. 次の URL からインストール パッケージをダウンロードします。

  2. 次のチュートリアルの手順に従って、FTP サービスをインストールします。

操作方法

FTP 資格情報キャッシュ設定を構成する方法

IIS 7.0 ユーザー向けの注意事項: このセクションの手順の一部では、IIS 構成エディターを含む Microsoft Administration Pack for IIS 7.0 のインストールが必要になる場合があります。 Microsoft Administration Pack for IIS 7.0 をインストールするには、次の URL を参照してください。

Note

<hostNameSupport> 要素を構成できる直接のユーザー インターフェイスはないため、次の手順では IIS 構成エディター機能を使います。

  1. 次のようにインターネット インフォメーション サービス (IIS) マネージャーを開きます。

    • Windows Server 2012 または Windows Server 2012 R2 を使用している場合:

      • タスク バーで、[サーバー マネージャー] をクリックし、[ツール][インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
    • Windows 8 または Windows 8.1 を使用している場合:

      • Windows キーを押しながら文字 X を押し、[コントロール パネル] をクリックします。
      • [管理ツール] をクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
    • Windows Server 2008 または Windows Server 2008 R2 を使用している場合:

      • タスク バーで、[スタート] ボタンをクリックし、[管理ツール][インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
    • Windows Vista または Windows 7 を使用している場合:

      • タスク バーで、[スタート][コントロール パネル] の順にクリックします。
      • [管理ツール] をダブルクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
  2. [接続] ウィンドウでサーバー名をクリックします。

  3. [ホーム] ペインで、[構成エディター] 機能をダブルクリックします。

  4. [セクション] ドロップダウン メニューで、[sytem.ftpServer] を展開し、次に [キャッシュ] をクリックします。
    システム ドット f t p サーバー メニューが展開されている構成エディターの機能ウィンドウのスクリーンショット。

  5. リスト ビューで [credentialsCache] を展開します。

  6. [enabled] 属性ドロップダウン リストで [True] または [False] を選びます。

  7. [flushInterval] 属性にフラッシュ間隔の秒数を入力します。

  8. [操作] ウィンドウで、[適用] をクリックします。

Note

このセクションには、IIS 構成エディターを使って IIS 設定を変更する方法についての情報が含まれています。 IIS 構成設定を誤って編集すると、IIS インストールに重大な損傷を与える可能性があります。 したがって、次の手順を注意深く実行してください。 安全性を高めるため、IIS 構成エディターを使って変更を行う前に、IIS 構成設定をバックアップする必要があります。 IIS 構成設定をバックアップする方法と IIS 構成エディターの使用方法の詳細については、次のトピックを参照してください。

構成

<caching> 要素は、ApplicationHost.config のグローバル レベルで構成されます。

属性

なし。

子要素

要素 説明
credentialsCache 省略可能な要素です。

FTP サービスの資格情報キャッシュ設定を指定します。

構成サンプル

次の構成例では、サーバーの FTP 資格情報キャッシュを有効にし、資格情報のタイムアウトを 300 秒 (5 分) に設定します。

<system.ftpServer>
   <caching>
      <credentialsCache enabled="true" flushInterval="300" />
   </caching>
</system.ftpServer>

サンプル コード

次の例では、サーバーの FTP 資格情報キャッシュを有効にし、資格情報のタイムアウトを 300 秒 (5 分) に設定します。

AppCmd.exe

appcmd.exe set config -section:system.ftpServer/caching /credentialsCache.enabled:"True" /commit:apphost

appcmd.exe set config -section:system.ftpServer/caching /credentialsCache.flushInterval:"300" /commit:apphost

Note

AppCmd.exe を使用してこれらの設定を構成するときは、commit パラメーターを必ず apphost に設定する必要があります。 これで、ApplicationHost.config ファイルの適切な場所セクションに構成設定がコミットされます。

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection cachingSection = config.GetSection("system.ftpServer/caching");

         ConfigurationElement credentialsCacheElement = cachingSection.GetChildElement("credentialsCache");
         credentialsCacheElement["enabled"] = true;
         credentialsCacheElement["flushInterval"] = 300;

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim cachingSection As ConfigurationSection = config.GetSection("system.ftpServer/caching")

      Dim credentialsCacheElement As ConfigurationElement = cachingSection.GetChildElement("credentialsCache")
      credentialsCacheElement("enabled") = True
      credentialsCacheElement("flushInterval") = 300

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var cachingSection = adminManager.GetAdminSection("system.ftpServer/caching", "MACHINE/WEBROOT/APPHOST");

var credentialsCacheElement = cachingSection.ChildElements.Item("credentialsCache");
credentialsCacheElement.Properties.Item("enabled").Value = true;
credentialsCacheElement.Properties.Item("flushInterval").Value = 300;

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set cachingSection = adminManager.GetAdminSection("system.ftpServer/caching", "MACHINE/WEBROOT/APPHOST")

Set credentialsCacheElement = cachingSection.ChildElements.Item("credentialsCache")
credentialsCacheElement.Properties.Item("enabled").Value = True
credentialsCacheElement.Properties.Item("flushInterval").Value = 300

adminManager.CommitChanges()