FTP サーバー ランタイム <serverRuntime>
概要
<serverRuntime>
要素は、FTP サービスの動作方法を構成する設定を指定します。 具体的には、<serverRuntime>
要素には <hostNameSupport>
要素が含まれており、これにより、FTP 仮想ホストの指定にドメイン名構文を使用できるかどうかを構成できます。
FTP 仮想ホスト名は FTP 7.0 で導入され、FTP 仮想ホスト名は HTTP ホスト ヘッダー名を指定するのと同じ方法でバインディングの一部として指定されます。 たとえば、HTTP バインディングには www.contoso.com
または www.fabrikam.com
、FTP バインディングには ftp.contoso.com
または ftp.fabrikam.com
などのホスト名を使ってバインディングを指定できます。 HTTP は、クライアントとサーバーの間で渡されるヘッダーでホスト名を渡す方法を提供しますが、FTP は、現在、これと同じ機能を提供していません。 この FTP の制限により、ログイン プロセス中に仮想ホスト名がユーザー名の一部として使われます。 既定では、FTP クライアントは、ftp.contoso.com|username
または ftp.fabrikam.com|username
のような構文でパイプ (垂直線) 文字を使って、ログイン資格情報を指定する必要があります。 useDomainNameAsHostName
属性を true に設定すると、ドメイン名構文を使って仮想ホストとユーザー名を指定できます。これにより、パイプ (垂直線) 文字ではなくバックスラッシュ文字を使用できるようになります。そのため、構文は ftp.contoso.com\username
または ftp.fabrikam.com\username
のようになります。
Note
FTP 7.0 と FTP 7.5 は両方とも、提案された FTP HOST コマンドをサポートしています。このコマンドでは、仮想ホスト名をユーザー名の一部として使う必要はありません。
互換性
バージョン | メモ |
---|---|
IIS 10.0 | <serverRuntime> 要素は、IIS 10.0 では変更されませんでした。 |
IIS 8.5 | <serverRuntime> 要素は、IIS 8.5 では変更されませんでした。 |
IIS 8.0 | <serverRuntime> 要素は IIS 8.0 では変更されませんでした。 |
IIS 7.5 | <system.ftpServer> 要素の <serverRuntime> 要素は FTP 7.5 で導入され、IIS 7.5 の機能として付属しています。 |
IIS 7.0 | 該当なし |
IIS 6.0 | 該当なし |
Note
FTP 7.0 サービスと FTP 7.5 サービスは IIS 7.0 とは別に出荷され、次の URL からモジュールをダウンロードしてインストールする必要がありました。
Windows 7 と Windows Server 2008 R2 では、FTP 7.5 サービスは IIS 7.5 の機能として付属しているため、FTP サービスのダウンロードは必要なくなりました。
段取り
Web サーバーの FTP 公開をサポートするには、FTP サービスをインストールする必要があります。 そのためには、次のステップに従います。
Windows Server 2012 または Windows Server 2012 R2
タスク バーで [サーバー マネージャー]をクリックします。
[サーバー マネージャー] で、[管理] メニューを選択し、[役割と機能の追加] を選択します。
[役割と機能の追加] ウィザードで、[次へ] をクリックします。 インストールの種類を選択し、[次へ] をクリックします。 対象サーバーを選択し、[次へ] をクリックします。
[サーバーの役割] ページで、[Web サーバー (IIS)] を展開して、[FTP サーバー] を選びます。
Note
FTP サービスに対して ASP.NET メンバーシップ認証または IIS マネージャー認証をサポートするには、[FTP Service] に加えて[FTP 拡張] も選択する必要があります。
[次へ] をクリックし、[機能の選択] ページで再度 [次へ] をクリックします。
[インストール オプションの確認] ページで、[インストール] をクリックします。
[結果] ページで、 [閉じる]をクリックします。
Windows 8 または Windows 8.1
[スタート] 画面で、ポインターを左下隅まで移動し、[スタート] ボタンを右クリックし、[コントロール パネル] をクリックします。
[コントロール パネル]で [プログラムと機能] をクリックし、[Windows の機能の有効化または無効化] をクリックします。
[インターネット インフォメーション サービス] を展開し、[FTP サーバー] を展開します。
Note
FTP サービスに対して ASP.NET メンバーシップ認証または IIS マネージャー認証をサポートするには、[FTP 拡張] も選択する必要があります。
OK をクリックします。
閉じるをクリックします。
Windows Server 2008 R2
タスク バーで [スタート] をクリックし、[管理ツール] をポイントして、[サーバー マネージャ] をクリックします。
[サーバー マネージャ] 階層ウィンドウで [役割] を展開し、[Web サーバー (IIS)] をクリックします。
[Web サーバー (IIS)] ウィンドウで、[役割サービス] セクションまでスクロールし、[役割サービスの追加] をクリックします。
[役割サービスの追加] ウィザードの [役割サービスの選択] ページで [FTP サーバー] を展開します。
[FTP Service] を選択します。
Note
FTP サービスに対して ASP.NET メンバーシップ認証または IIS マネージャー認証をサポートするには、[FTP 拡張] も選択する必要があります。
次へ をクリックします。
[インストール オプションの確認] ページで、[インストール] をクリックします。
[結果] ページで、 [閉じる]をクリックします。
Windows 7
タスク バーで、[スタート]、[コントロール パネル] の順にクリックします。
[コントロール パネル]で [プログラムと機能] をクリックし、[Windows の機能の有効化または無効化] をクリックします。
[インターネット インフォメーション サービス]、[FTP サーバー] の順に展開します。
[FTP Service] を選択します。
Note
FTP サービスに対して ASP.NET メンバーシップ認証または IIS マネージャー認証をサポートするには、[FTP 拡張] も選択する必要があります。
OK をクリックします。
Windows Server 2008 または Windows Vista
次の URL からインストール パッケージをダウンロードします。
次のチュートリアルの手順に従って、FTP サービスをインストールします。
操作方法
仮想ホスト名のドメイン名構文を構成する方法
Note
<hostNameSupport>
要素を構成できる直接のユーザー インターフェイスはありません。そのため、以下の手順では IIS 構成エディター機能を使います。
インターネット インフォメーション サービス (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) マネージャー] をダブルクリックします。
[接続] ウィンドウでサーバー名をクリックします。
[ホーム] ペインで、[構成エディター] 機能をダブルクリックします。
[セクション] ドロップダウン メニューで、[sytem.ftpServer] を展開し、次に [serverRuntime] をクリックします。
リスト ビューで [hostNameSupport] を展開します。
useDomainNameAsHostName 属性のドロップダウン リストで True または False を選びます。
[操作] ウィンドウで、[適用] をクリックします。
Note
このセクションには、IIS 構成エディターを使って IIS 設定を変更する方法についての情報が含まれています。 IIS 構成設定を誤って編集すると、IIS インストールに重大な損傷を与える可能性があります。 したがって、次の手順を注意深く実行してください。 安全性を高めるため、IIS 構成エディターを使って変更を行う前に、IIS 構成設定をバックアップする必要があります。 IIS 構成設定をバックアップする方法と IIS 構成エディターの使用方法の詳細については、次のトピックを参照してください。
- IIS 7 構成をバックアップする方法
https://technet.microsoft.com/library/dd819406.aspx - 構成エディターのページ
https://technet.microsoft.com/library/dd569081.aspx
構成
<serverRuntime>
要素は、ApplicationHost.config のグローバル レベルで構成されます。
属性
なし。
子要素
要素 | 説明 |
---|---|
hostNameSupport |
省略可能な要素です。 仮想ホスト名のドメイン名構文を許可するかどうかを指定します。 |
構成サンプル
次のサンプルでは、仮想ホスト名のサーバー許可ドメイン名構文を構成する <serverRuntime>
要素が表示されます。
<system.ftpServer>
<serverRuntime>
<hostNameSupport useDomainNameAsHostName="true" />
</serverRuntime>
</system.ftpServer>
サンプル コード
次の例では、FTP 仮想ホスト名のドメイン名構文を許可するように FTP サーバーの <serverRuntime>
要素を構成します。
AppCmd.exe
appcmd.exe set config -section:system.ftpServer/serverRuntime /hostNameSupport.useDomainNameAsHostName:"True" /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 serverRuntimeSection = config.GetSection("system.ftpServer/serverRuntime");
ConfigurationElement hostNameSupportElement = serverRuntimeSection.GetChildElement("hostNameSupport");
hostNameSupportElement["useDomainNameAsHostName"] = true;
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 serverRuntimeSection As ConfigurationSection = config.GetSection("system.ftpServer/serverRuntime")
Dim hostNameSupportElement As ConfigurationElement = serverRuntimeSection.GetChildElement("hostNameSupport")
hostNameSupportElement("useDomainNameAsHostName") = True
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var serverRuntimeSection = adminManager.GetAdminSection("system.ftpServer/serverRuntime", "MACHINE/WEBROOT/APPHOST");
var hostNameSupportElement = serverRuntimeSection.ChildElements.Item("hostNameSupport");
hostNameSupportElement.Properties.Item("useDomainNameAsHostName").Value = true;
adminManager.CommitChanges();
VBScript
Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set serverRuntimeSection = adminManager.GetAdminSection("system.ftpServer/serverRuntime", "MACHINE/WEBROOT/APPHOST")
Set hostNameSupportElement = serverRuntimeSection.ChildElements.Item("hostNameSupport")
hostNameSupportElement.Properties.Item("useDomainNameAsHostName").Value = True
adminManager.CommitChanges()