Runtime do Servidor FTP <serverRuntime>
Visão geral
O elemento <serverRuntime>
epecifica as configurações que definem como o serviço FTP opera. Mais especificamente, o elemento <serverRuntime>
contém o elemento <hostNameSupport>
, que permite configurar se a sintaxe de nome de domínio pode ser usada para especificar hosts virtuais FTP.
Os nomes de host virtual FTP foram introduzidos no FTP 7.0 e um nome de host virtual FTP é especificado como parte de uma associação da mesma forma que você especifica nomes de cabeçalho de host HTTP. Por exemplo, você pode especificar as associações usando nomes de host como www.contoso.com
ou www.fabrikam.com
para as associações HTTP e ftp.contoso.com
ou ftp.fabrikam.com
para as associações FTP. O HTTP fornece uma maneira de passar o nome do host nos cabeçalhos que são passados entre o cliente e o servidor, mas o FTP atualmente não fornece essa mesma funcionalidade. Devido a essa limitação de FTP, o nome do host virtual é usado como parte do nome de usuário durante o processo de logon. Por padrão, um cliente FTP precisaria especificar suas credenciais de logon usando o caractere pipe (linha vertical) com sintaxe como ftp.contoso.com|username
ou ftp.fabrikam.com|username
. Ao definir o atributo useDomainNameAsHostName
como true, você pode especificar o host virtual e o nome de usuário usando a sintaxe de nome de domínio; isso permite que você use um caractere de barra invertida em vez do caractere pipe (linha vertical). Portanto, a sintaxe seria semelhante a ftp.contoso.com\username
ou ftp.fabrikam.com\username
.
Observação
Tanto o FTP 7.0 quanto o FTP 7.5 dão suporte ao comando HOST FTP proposto, o que não exige que você use o nome do host virtual como parte do nome de usuário.
Compatibilidade
Versão | Observações |
---|---|
IIS 10.0 | O elemento <serverRuntime> não foi modificado no IIS 10.0. |
IIS 8.5 | O elemento <serverRuntime> não foi modificado no IIS 8.5. |
IIS 8.0 | O elemento <serverRuntime> não foi modificado no IIS 8.0. |
IIS 7.5 | O elemento <serverRuntime> do elemento <system.ftpServer> foi introduzido no FTP 7.5 e é fornecido como um recurso do IIS 7.5. |
IIS 7.0 | N/D |
IIS 6,0 | N/D |
Observação
Os serviços FTP 7.0 e FTP 7.5 enviados fora de banda para o IIS 7.0, o que exigia o download e a instalação de módulos do seguinte URL:
Com o Windows 7 e o Windows Server 2008 R2, o serviço FTP 7.5 é fornecido como um recurso para o IIS 7.5, portanto, o download do serviço FTP não é mais necessário.
Instalação
Para dar suporte à publicação FTP para seu servidor Web, você deve instalar o serviço FTP. Para fazer isso, execute as etapas a seguir.
Windows Server 2012 R2 ou Windows Server 2012
Na barra de tarefas, clique em Gerenciador do Servidor.
No Gerenciador do Servidor, clique no menu Gerenciar e clique em Adicionar Funções e Recursos.
No assistente Adicionar Funções e Recursos, clique em Avançar. Selecione o tipo de instalação e clique em Avançar. Selecione o servidor de destino e clique em Avançar.
Na página Funções do Servidor, expanda Servidor Web (IIS) e selecione Servidor FTP.
Observação
Para dar suporte à autenticação do ASP.Membership ou do Gerenciador do IIS para o serviço FTP, você precisará selecionar a Extensibilidade de FTP além do Serviço FTP.
Clique em Próximo e, na página Selecionar recursos, clique em Próximo novamente.
Na página Confirmar seleções de instalação, clique em Instalar.
Na página Resultados , clique em Fechar.
Windows 8 ou Windows 8.1
Na tela Iniciar, mova o ponteiro até o canto inferior esquerdo, clique com o botão direito do mouse no botão Iniciar e clique em Painel de Controle.
Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar recursos do Windows.
Expanda Serviços de Informações da Internet e, em seguida, selecione Servidor FTP.
Observação
Para dar suporte à autenticação do ASP.Membership ou do Gerenciador do IIS para o serviço FTP, você também precisará selecionar a Extensibilidade de FTP.
Clique em OK.
Clique em Fechar.
Windows Server 2008 R2
Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do Servidor.
No painel de hierarquia do Gerenciador do Servidor, expanda Funções e clique em Servidor Web (IIS).
No painel Servidor Web (IIS), role até a seção Serviços de Função e clique em Adicionar Serviços de Função.
Na página Selecionar Serviços de Função do Assistente para Adicionar Serviços de Função, expanda Servidor FTP.
Selecione Serviço FTP.
Observação
Para dar suporte à autenticação do ASP.Membership ou do Gerenciador do IIS para o serviço FTP, você também precisará selecionar a Extensibilidade de FTP.
Clique em Avançar.
Na página Confirmar Seleções de Instalação, clique em Instalar.
Na página Resultados , clique em Fechar.
Windows 7
Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar Recursos do Windows.
Expanda Serviços de Informações da Internet e, em seguida, Servidor FTP.
Selecione Serviço FTP.
Observação
Para dar suporte à autenticação do ASP.Membership ou do Gerenciador do IIS para o serviço FTP, você também precisará selecionar a Extensibilidade de FTP.
Clique em OK.
Windows Server 2008 ou Windows Vista
Baixe o pacote de instalação da seguinte URL:
Siga as instruções no seguinte passo a passo para instalar o serviço FTP:
Instruções
Como configurar a sintaxe de nome de domínio para nomes de host virtual
Observação
Não há nenhuma interface direta do usuário que permita configurar o elemento <hostNameSupport>
. Portanto, as etapas a seguir usarão o recurso editor de configuração do IIS.
Abra o Gerenciador dos Serviços de Informações da Internet (IIS):
Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:
- Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows 8 ou Windows 8.1:
- Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
- Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:
- Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows Vista ou Windows 7:
- Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
- Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
No painel Conexões, clique no nome do servidor.
No painel Página Inicial, clique duas vezes no recurso Editor de Configuração.
No menu suspenso Seção, expanda sytem.ftpServer e clique em serverRuntime.
Expanda hostNameSupport no modo de exibição de lista.
Escolha True ou False na lista suspensa do atributo useDomainNameAsHostName.
No painel Ações, clique em Aplicar.
Observação
Esta seção contém informações sobre como modificar as configurações do IIS usando o Editor de Configuração do IIS. Editar incorretamente as configurações do IIS pode danificar severamente a instalação do IIS. Portanto, certifique-se de seguir essas etapas com atenção. Para obter mais segurança, faça backup das configurações do IIS antes de usar o Editor de Configuração do IIS para fazer modificações. Para obter mais informações sobre como fazer backup de suas configurações do IIS e como usar o Editor de Configuração do IIS, consulte os seguintes tópicos:
- Como fazer backup de uma configuração do IIS 7
https://technet.microsoft.com/library/dd819406.aspx - Página do Editor de Configuração
https://technet.microsoft.com/library/dd569081.aspx
Configuração
O elemento <serverRuntime>
é configurado no nível global em ApplicationHost.config.
Atributos
Nenhum.
Elementos filho
Elemento | Descrição |
---|---|
hostNameSupport |
Elemento opcional. Especifica se a sintaxe de nome de domínio para nomes de host virtual é permitida. |
Exemplo de configuração
O exemplo a seguir exibe um elemento <serverRuntime>
que configura a sintaxe de nome de domínio de permissão do servidor para nomes de host virtual.
<system.ftpServer>
<serverRuntime>
<hostNameSupport useDomainNameAsHostName="true" />
</serverRuntime>
</system.ftpServer>
Exemplo de código
Os exemplos a seguir configuram o elemento <serverRuntime>
para um servidor FTP para permitir a sintaxe de nome de domínio para nomes de host virtual FTP.
AppCmd.exe
appcmd.exe set config -section:system.ftpServer/serverRuntime /hostNameSupport.useDomainNameAsHostName:"True" /commit:apphost
Observação
Defina o parâmetro commit para apphost
quando usar AppCmd.exe para definir essas configurações. Isso confirma as definições de configuração para a seção de local apropriado no arquivo 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()