Conheça as novidades no IIS 8.5


IIS 8.5

Na nova versão do Windows Server 2012, foram implementadas melhorias no IIS 8.5, confira abaixo:

Enhanced Logging

Com essa opção é possível registrar os campos personalizados do pedido ou resposta do cabeçalho, ou ainda  a partir de alguma variável do servidor.

Logging to Event Tracing

Com essa opção o administrador tem a opção de envio de informações de log do rastreador de eventos s para o Windows (ETW). Na versão anterior não era possível visualizar o LOG do IIS porque estava sendo utilizado pelo processo, e era demorado o processamento do LOG no disco, com essa opção é possível visualizar o LOG em tempo real.

Dynamic Website Activation

Quando existe um número muito alto de sites configurados, 100 ou maior por padrão, você utiliza essa opção para reduzir o tempo de inicialização do site e utilização de memória. Quando era inicializado um servidor de IIS, os sites eram automaticamente iniciado, e ao iniciar todos de uma vez o consumo de um site pode ser maior do que o normal, e por outro lado alguns não utilizam tantos recursos assim e não tinham muitos acessos.

Idle Worker Process Page-Out

Com essa opção é possível suspender um worker process ocioso ao invés de finaliza-lo. A vantagem de utilizar essa opção é para liberar recursos no servidor como Memória e CPU, até a versão anterior (8.0) era possível você finalizar um worker process após um tempo  ocioso, isso era ruim, pois quando tinha a primeira requisição o worker process era iniciado novamente, tornando mais lento o primeiro acesso.

Nós próximos artigos vamos entender como é ativado cada uma dessas funcionalidades novas.

Você conhece o HTTP.SYS?


Bom pessoal, após algum tempo sem escrever para vocês, hoje volto com um post curto, porém interessante para que vocês conheçam um pouco sobre a arquitetura do IIS, é um processo importante, e é preciso conhecer, pois alguns problemas podem ser tratados nesse nível.

O HTTP.SYS é conhecido como Hypertext Tranfer Protocol Stack, é implementado como driver em modo kernel na instalação do IIS. O HTTP.SYS escuta todas as requisições HTTP (Porta 80) que são enviadas para o IIS, ele possui alguns beneficios como:

  • Cache do modo kernel : Os pedidos de respostas em cache são servidos para o modo usuário sem que seja alterado o conteúdo.
  • Modo kernel pedido filas: Pedidos causam menos sobrecarga na mudança de contexto, pois o kernel encaminha solicitações diretamente para o processo correto, caso não tenha nenhum processo disponível para aceitar um pedido, a fila de que está em modo kernel mantém o pedido até que um processo de trabalho esteja disponivel.
  • Solicitação de pré-processamento e segurança de segurança.

 

A ideia para esse ano é falarmos muito sobre o IIS 8.5, e ajudar vocês administradores a conhecer melhor o produto e implementar da forma correta, pois acreditem o IIS não é apenas NNF (Next, Next, Finish).

Até breve,

Erick Albuquerque

2013 in review


The WordPress.com stats helper monkeys prepared a 2013 annual report for this blog.

Here’s an excerpt:

The concert hall at the Sydney Opera House holds 2,700 people. This blog was viewed about 37,000 times in 2013. If it were a concert at Sydney Opera House, it would take about 14 sold-out performances for that many people to see it.

Click here to see the complete report.

Ferramenta de troubleshooting de requisições no IIS 7.5 e 8.0


Pessoal,

O PFE Guilherme Carnevale desenvolveu uma ferramenta para troubleshoting de requisições no IIS 7.5 e 8.0, abaixo estão listados os principais recursos, bem como o link para download, veja:

  • 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

5873.reqviewer

Clique aqui para fazer o Download do ReqViewer:

Troubleshooting: System.UnauthorizedAccessException


Ao criar uma notícia é gerado um .xml no servidor01 e em seguida este XML é copiado imediatamente para o servidor02, ao acontecer este processo ocorre o erro System.UnauthorizedAccessException (ASP.NET is not authorized to access the requested resource. Consider granting access rights to the resource to the ASP.NET request identify, ASP.NET has impersonate=”true” />, the identify will be the anonymous user (tipically IUSR_MACHINAME) or the authenticated request user;

To grant ASP.NET acces to a file, rigth-click the file in Explorer, choose “Properties” and select the Security Tab. Click “add” to add the apropriate user or group.

 

 

 

Resumindo a mensagem acima, mesmo setando permissão para o usuário que executa o Application Pool e ASP.NET o problema ocorria, resolvi simular o problema novamente porém utilizando o Process Monitor, veja:

 

* Após capturado todos processos que ocorrem durante o problema, filtrei pelo PID do processo W3WP que estava sendo executado o site em questão.

 

Ao começar a analisar notei que o xml era criado ou atualizado, porém na hora da copiar ocorria o “acesso negado”, um pouco mais abaixo na linha que está grifado de azul é o momento que o arquivo é copiado para o servidor02 com passagem de parâmetros de usuário e senha, logo de cara vi que que o usuário que estava sendo passado como credencial para o servidor02 era um usuário local do servidor01, sem duvidas daria acesso negado, pois o usuário local é para ser utilizado no servidor LOCAL e não no remoto.

Próximo passo foi localizar o web.config que estava setado este usuário, apenas um parenteses (Este usuário existia nós 2 servidores, inclusive com a mesma senha), no web.config estava sendo passado o usuário da seguinte forma SERVIDOR01\usuario, o que fiz foi apenas alterar para “usuario”, desta forma não era passado nenhum parametro de servidor l0cal ou remoto, mas sim apenas o usuário.

Até mais,

Status Code no IIS 7 e IIS 7.5


Pessoal, creio que seja interessante este post, pois através do código de status retornado no browser, pode lhe dar o norte para iniciar um troubleshooting, veja quais são eles:

1xx: Informação

  • 100 – Continuar.
  • 101 – Protocolos de Alternância.

2xx: Êxito

  • 200 – OK. A solicitação do cliente foi bem-sucedida.
  • 201 – Criado.
  • 202 – Aceito.
  • 203 – Informações não autoritativas.
  • 204 – Sem conteúdo.
  • 205 – Redefinir conteúdo.
  • 206 – Conteúdo parcial.

3xx: Redirect

  • 301 – Movido permanentemente.
  • 302 – Objeto movido.
  • 304 – Não modificado.
  • 307 – Redirecionamento temporário.

4xx: Erro no cliente

  • 400.1 – Cabeçalho de destino inválido.
  • 400.2 – Cabeçalho de profundidade inválido.
  • 400.3 – Cabeçalho If inválido.
  • 400.4 – Cabeçalho de substituição inválido.
  • 400.5 – Cabeçalho Translate inválido.
  • 400.6 – Corpo de solicitação inválido.
  • 400.7 – Comprimento de conteúdo inválido.
  • 400.8 – Tempo limite inválido.
  • 400.9 – Token de bloqueio inválido.

401: Acesso negado

  • 401.1 – Falha no logon.
  • 401.2 – Falha no logon devido à configuração do servidor.
  • 401.3 – Não autorizado devido à ACL no recurso.
  • 401.4 – Falha na autorização pelo filtro.
  • 401.5 – Falha na autorização pelo aplicativo ISAPI/CGI.

403: Acesso proibido

  • 403.1 – Acesso de execução proibido.
  • 403.2 – Acesso de leitura proibido.
  • 403.3 – Acesso de gravação proibido.
  • 403.4 – SSL necessário.
  • 403.5 – SSL 128 necessário.
  • 403.6 – Endereço IP rejeitado.
  • 403.7 – Certificado de cliente necessário.
  • 403.8 – Acesso ao site negado.
  • 403.9 – Proibido: Número excessivo de clientes tentando conectar-se ao servidor Web.
  • 403.10 – Proibido: Servidor Web configurado para negar o acesso de execução.
  • 403.11 – Proibido: Senha alterada.
  • 403.12 – Mapeador negou acesso.
  • 403.13 – Certificado de cliente revogado.
  • 403.14 – Listagem de diretório negado.
  • 403.15 – Proibido: As licenças de acesso para cliente excederam os limites do servidor Web.
  • 403.16 – Certificado do cliente não é confiável ou é inválido.
  • 403.17 – Certificado do cliente expirado ou ainda não está válido.
  • 403.18 – Não é possível executar a URL solicitada no pool de aplicativos atual.
  • 403.19 – Não é possível executar aplicativos CGI para o cliente neste pool de aplicativos.
  • 403.20 – Proibido: Falha de logon do Passport.
  • 403.21 – Proibido: Acesso ao código-fonte negado.
  • 403.22 – Proibido: Profundidade infinita negada.
  • 403.502 – Proibido: Muitas solicitações do mesmo IP do cliente; O limite de restrição de IP dinâmico foi atingido.

404: Página não encontrada

  • 404.0 – Não encontrado.
  • 404.1 – Site não encontrado.
  • 404.2 – Restrição ISAPI ou CGI.
  • 404.3 – Restrição de tipo MIME.
  • 404.4 – Nenhum manipulador configurado.
  • 404.5 – Negado pela configuração de filtragem de solicitações.
  • 404.6 – Verbo negado.
  • 404.7 – Extensão de arquivo negada.
  • 404.8 – Namespace oculto.
  • 404.9 – Atributo de arquivo oculto.
  • 404.10 – Cabeçalho de solicitação muito longo.
  • 404.11 – A solicitação contém sequência de escape dupla.
  • 404.12 – A solicitação contém caracteres de bit alto.
  • 404.13 – Comprimento de conteúdo muito grande.
  • 404.14 – URL de solicitação muito longa.
  • 404.15 – Cadeia de caracteres de consulta muito longa.
  • 404.16 – Solicitação DAV enviada para o manipulador de arquivo estático.
  • 404.17 – Conteúdo dinâmico mapeado para o manipulador de arquivo estático por meio de um mapeamento MIME de curingas.
  • 404.18 – Sequência de Querystring negada.
  • 404.19 – Negada pela regra de filtragem.
  • 404.20 – Muitos segmentos de URL

405:  Método não permitido.

406: O navegador do cliente não aceita MIME

408:  Tempo limite da solicitação atingido.

412: Falha na pré-condição

5xx: Erro no servidor

  • 500.0 – Ocorreu um erro ISAPI ou de módulo.
  • 500.11 – O aplicativo está sendo encerrado no servidor Web.
  • 500.12 – O aplicativo está ocupado reiniciando no servidor Web.
  • 500.13 – O servidor Web está muito ocupado.
  • 500.15 – Solicitações diretas para Global.asax não são permitidas.
  • 500.19 – Dados de configuração inválidos.
  • 500.21 – Módulo não reconhecido.
  • 500.22 – Uma configuração ASP.NET httpModules não é aplicável no modo de pipeline gerenciado.
  • 500.23 – Uma configuração ASP.NET httpModules não é aplicável no modo de pipeline gerenciado.
  • 500.24 – Uma configuração de representação ASP.NET não é aplicável no modo de pipeline gerenciado.
  • 500.50 – Erro de regravação durante o tratamento de notificação RQ_BEGIN_REQUEST. Erro de execução de regra de entrada ou de configuração.

501 – Valores de cabeçalho especificam uma configuração que não está implementada.

502 – O servidor Web recebeu uma resposta inválida ao atuar como um gateway ou proxy.

  • 502.1 – Tempo limite do aplicativo CGI.
  • 502.2 – Gateway incorreto.

503 –  Serviço indisponível

  • 503.0 – Pool de aplicativos indisponível.
  • 503.2 – Limite de solicitação simultâneas excedido.
  • 503.3 – Fila do ASP.NET cheia