• Usando o FREB (Failed Requests Event Buffering) no IIS 7, 7.5 e 8

    O FREB é um recurso muito utilizado para entendermos situações onde acontecem erros que não são simples ou conhecidos.

    Para habilitar podemos usar a console, ou a linha de comando, para facilitar habilita-lo e desabilita-lo abaixo as linhas de comandos :

    1) Os comandos abaixo tem como finalidade: Habilitar o FREB para o Default Web Site / Define diretório padrão e numero máximo de logs para serem coletados

    appcmd.exe set config -section:system.applicationHost/sites /[name='"Default Web Site"'].traceFailedRequestsLogging.enabled:"True" /commit:apphost
    appcmd.exe set config -section:system.applicationHost/sites /[name='"Default Web Site"'].traceFailedRequestsLogging.directory:"%SystemDrive%\inetpub\logs\FailedReqLogFiles" /commit:apphost
    appcmd.exe set config -section:system.applicationHost/sites /[name='"Default Web Site"'].traceFailedRequestsLogging.maxLogFiles:"50" /commit:apphost

    2) Cria regra de coleta para erros 401 e 500 ( Essa regra é apenas um exemplo. Alterar conforme necessidade)
    appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests /+"[path='*']"
    appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests /[path='*'].failureDefinitions.statusCodes:"401,500"
    appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests /+"[path='*'].traceAreas.[provider='ASPNET',areas='Infrastructure,Module,Page,AppServices',verbosity='Verbose']"
    appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests /+"[path='*'].traceAreas.[provider='ASP',verbosity='Verbose']"
    appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests /+"[path='*'].traceAreas.[provider='ISAPI Extension',verbosity='Verbose']"
    appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests /+"[path='*'].traceAreas.[provider='WWW Server',areas='Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,FastCGI',verbosity='Verbose']"

    3) Desabilita o recurso de coleta de logs avançados.
    appcmd.exe set config -section:system.applicationHost/sites /[name='"Default Web Site"'].traceFailedRequestsLogging.enabled:"False" /commit:apphost

     

  • Ferramenta de troubleshooting de requisições para IIS 7.5 e 8.0

    Criei uma ferramenta para listar as conexões em uso no IIS 7.5 e 8.0 para sistemas x64. A ideia inicial era apenas listagem das paginas em execução, mas foram tantos recursos adicionados que virou uma ferramenta de troubleshooting web.

    Vejam abaixo os recursos disponíveis:

    * Listar conexões web atuais

    * Reciclagem de  Application Pool

    * Tirar dump de processos W3WP.exe que não respondem (clicar com o botão direito sobre o nome do processo W3WP.exe)

    * Filtrar apenas conexões mais lentas que (5,10,20,30,40,50,60) segundos

    * Auto refresh a cada 3 segundos (opcional)

    * Salvar conexões em execução para arquivo CSV

    * Coleta de dados de performance (10 segundos de intervalo/ 1 minuto de intervalo)

    * Coleta de Network Monitor (dados de rede)

    * netstat  /  netstat com filtro por IP

    * netsh http (Comandos todos em tela visual)

    * Coleta de dados de diagnósticos avançado (Event trace for Windows  - ETW)

    * APPCMD via modo visual

    * Criar e listar backups do IIS

    * Ferramenta do Performance Monitor com principais contadores do IIS

    * Atalhos para console do IIS, Services e CMD

    Tela principal:

  • Fluxo de requisições dentro do Internet Information Services ( IIS )

    Qual fluxo de requisições dentro dos componentes do IIS ?

     

    Acima temos um desenho de uma estação com um browser Internet Explorer :-)

    1)     Quando o usuário abre o browser e digita http://www.microsoft.com essa requisição chega até o servidor web, o primeiro componente do servidor após a stack de rede processar esse pacote é o HTTP.SYS que intercepta a resposta (em geral pacotes na porta 80).

    2)     HTTP.SYS consulta o WAS para obter informações do mecanismo de configuração do IIS

    3)     WAS consulta informações no arquivo ApplicationHost.config

    4)     O serviço WWW recebe informações sobre a configuração do Application Pool e Site

    5)     O serviço WWW usa essas informações para configurar o HTTP.Sys

    6)     WAS inicia um novo processo (O “operário” W3WP.exe)

    7)     O W3WP.exe ou na literatura worker process recebe e responde para o Http.sys

    8)     O browser recebe o resultado da pagina.

     

  • Como instalar o ASP.NET 4.5 no IIS 8 ?

    Nas versões anteriores do IIS, o comando aspnet_regiis -I era usado para habilitar o ASP.NET no site/servidor.

    A partir do Windows8/Windows Server 2012 existe um problema usando o aspnet_regiis.

    1. Se voce executar o aspnet_regiis -I para instalar o ASP.NET 4.5 no IIS8, uma mensagem de erro ira aparecer:
     This option is not supported on this version of the operating system. Administrators should instead install/uninstall ASP.NET 4.5 with IIS8 using the "Turn Windows Features On/Off" dialog, the Server Manager management tool, or the dism.exe command line tool. For more details please see http://go.microsoft.com/fwlink/?LinkID=216771.

    2.Se você criou uma aplicação para executar esses passos automaticamente, ela irá falhar.

    3. Se você instala está com o Windows 8 instalado e tenta habilitar o ASP.NET 4.5 com o comando aspnet_regiis -I a aplicação nao conseguirá habilitar o ASP.NET 4.5

    Qual motivo?

      O utilitario aspnet_regiis.exe nao é mais usado para instalar e desinstalar o ASP.NET 4.5 no Windows 8.

    Para fazer a instalação utilize o comando: dism /online /enable-feature /featurename:IIS-ASPNET45

     

  • Instalar Framework 3.5 no Windows 8 ou Windows Server 2012

    Se você esta tendo problemas na instalação do Framework 3.5, isso é devido a instalação padrão do Windows 8 e Windows Server 2012 não deixar mais todos pacotes do DVD dentro do diretório de cache do Windows.

    Sendo assim para esses pacotes que não estão no servidor, é necessário baixar da internet ou usar o DVD nas instalações.

    Já vi diversos erros de ambientes que estão usando Windows 8 com WSUS sem  atualizações para Windows 8 e recebem erro ao tentar instalar o Framework 3.5

    Nesse caso o jeito mais rápido é usando uma linha de comando:

    dism.exe /online /enable-feature /featurename:NetFX3 /Source:D:\sources\sxs

    Onde D:\ nesse exemplo é o DRIVE de CDROM do computador.