Como Executar o IIS Express sem Privilégios Administrativos
por Vaidy Gopalakrishnan
O IIS Express foi projetado para permitir que as tarefas de desenvolvimento e teste da Web mais comuns sejam executadas sem privilégios administrativos. Isso é muito útil em cenários em que os desenvolvedores não estão executando com direitos administrativos em seus computadores. Mesmo para usuários administrativos, esse recurso elimina a janela pop-up do Controle de Conta de Usuário (UAC) no Windows Vista e no Windows 7, impedindo que o fluxo de trabalho seja interrompido.
Este artigo explica o que os usuários padrão podem fazer com o IIS Express e descreve as tarefas limitadas aos administradores.
Executando sites localmente
Com o IIS Express, os usuários padrão podem executar sites localmente usando portas não reservadas (portas maiores que 1024). A associação de site padrão para o IIS Express é http://localhost:8080
. Por padrão, o WebMatrix e o Visual Studio 2010 SP1 Beta também configuram sites para usar localhost e uma porta não reservada.
Por outro lado, privilégios administrativos são necessários para servir conteúdo para solicitações externas ou usando uma porta reservada, como a 80 ou 443.
Configurando sites e aplicativos
O IIS e o IIS Express usam um arquivo applicationhost.config que contém informações de configuração em todo o servidor. Com o IIS Express, cada usuário possui a própria cópia do applicationhost.config, o que significa que o usuário pode adicionar sites, remover sites, configurar diretórios virtuais e assim por diante sem privilégios especiais. O IIS Express procura um arquivo applicationhost.config na pasta Documentos do usuário (por exemplo, %userprofile%\Documents\IISExpress\configno Windows 7). O IIS Express também pode ser apontado para um arquivo applicationhost.config personalizado usando a opção de linha de comando /config. O resultado é que não é necessário ser um administrador para usar o IIS Express com o Visual Studio.
Como o IIS usa um arquivo applicationhost.config em todo o computador no qual os usuários padrão não podem gravar, as mesmas tarefas no IIS podem ser executadas somente por administradores. (Como o IIS normalmente é usado em computadores servidores, isso geralmente não é uma restrição do ponto de vista de um desenvolvedor individual.)
Iniciando e interrompendo sites
Com o IIS Express, um usuário padrão pode iniciar e parar seu servidor Web à vontade. Isso pode ser feito usando o WebMatrix e o Visual Studio 2010 SP1 Beta ou usando o executável de comando iisexpress.exe. Um aplicativo da bandeja do sistema do Windows também permite que os usuários naveguem e desliguem instâncias do IIS Express.
Com o IIS, os usuários não podem iniciar seu site diretamente. Em vez disso, o WAS (Serviço de Ativação do Processo de Trabalho) é responsável pela ativação de sites. Como o WAS é um serviço do sistema, somente os administradores podem iniciá-lo ou interrompê-lo.
Usando o SSL
A configuração do acesso pelo SSL (Secure Sockets Layer) requer privilégios administrativos no IIS Express, assim como no IIS. No entanto, o programa de instalação do IIS Express executa as seguintes tarefas que permitem que os usuários padrão usem SSL com o IIS Express:
- Ele cria e instala automaticamente um certificado de servidor SSL autoassinado no armazenamento da máquina local.
- Ele configura HTTP.SYS para reservar as portas 44300 a 44399 para SSL. As solicitações SSL de entrada que usam localhost e uma das portas no intervalo especificado são automaticamente associadas ao certificado autoassinado.
(HTTP.SYS é um componente do sistema operacional que lida com SSL para IIS e IIS Express. O programa de instalação é capaz de configurar HTTP.SYS porque a instalação é executada com privilégios elevados.)
Consequentemente, usar SSL para testar um site com o IIS Express é tão simples quanto adicionar uma associação como a seguinte ao elemento do site em applicationhost.config:
<binding protocol="https" bindingInformation="*:44300:localhost" />
Isso funciona apenas para o tráfego local (solicitações localhost) e para o intervalo especificado de portas. Os privilégios de administrador são necessários para configurar um certificado SSL personalizado ou para executar SSL usando uma porta fora do intervalo especificado.
Resumo
O IIS Express permite que usuários não administrativos executem as seguintes tarefas:
- Executar um site localmente e use um número de porta maior que 1024.
- Adicionar, remover e modificar sites, aplicativos e diretórios virtuais.
- Iniciar e parar o servidor Web.
- Adicionar suporte SSL para testar um site usando um certificado SSL autoassinado pré-instalado e uma porta entre 44300 e 44399.
Privilégios administrativos são necessários para executar as seguintes tarefas:
- Usar uma porta reservada, como a 80 ou 443.
- Atender solicitações de tráfego externo.
- Configurar um certificado SSL personalizado.
- Executar o SSL usando uma porta fora do intervalo de 44300 a 44399.