Por que o IIS se recusa a veicular conteúdo do ASP.NET?

16

Meu servidor Std do Windows Server 2003 se recusa ao conteúdo do ASP.NET do servidor. Ele serve html regular muito bem, mas qualquer coisa .net, mesmo um arquivo html de uma linha com extensão ASPX falha silenciosamente.

Coisas que tentei:

  • Nada no log de eventos ou no WWW do IIS registra quando falha.
  • O violinista não mostra resposta
  • Eu reinstalei o .NET com
    • C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727> aspnet_regiis.exe -U
    • C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727> aspnet_regiis.exe -I
  • Dou permissões obscenamente altas a tudo o que consigo pensar (controle total, leitura, gravação etc.) a todos os usuários possivelmente relevantes (IUSER *, ASP.NET etc.).
  • Confirmei que as extensões de serviço da Web ASP.Net v1 e v2 são "permitidas" no IIS
  • Confirmado que o Gerenciador do Servidor tinha funções IIS e ASP.Net ativadas

Novamente: este é o cenário:

Qualquer orientação será muito apreciada!


Solução: reinstalei de acordo com as instruções abaixo e ele funciona agora. Obrigado a todos!

Michael Haren
fonte

Respostas:

23

Eu já tive esse problema exato várias vezes e, sempre, a solução era:

  1. vá para o painel de controle
  2. vá para a área "Componentes do Windows"
  3. remova o IIS, deixe-o desinstalar
  4. reiniciar
  5. adicione novamente o IIS ( inclua o material do ASP.NET ao desmarcar as caixas ).
  6. Execute: C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727> aspnet_regiis.exe -I

Passei horas depurando isso no site do cliente uma vez, e esse foi o truque. Desde então, toda vez que isso aconteceu, essa era a solução.

Não sei ao certo qual é a causa raiz, mas separamos a configuração do IIS uma vez tentando descobrir isso e até tivemos o RDC da Microsoft no servidor em questão por 2 ou 3 horas, e eles também não puderam ajudar. .

Então, eu o considero um bug não documentado no ASP.NET/IIS.

Sam Schutte
fonte
11
Isso foi o que aconteceu. Muito tempo desperdiçado nisso com uma solução tão insatisfatória - eu odeio não saber a causa real. Oh, bem, está funcionando agora - muito obrigado, Sam!
267 Michael Haren
2
Passo 6: C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727> aspnet_regiis.exe -I
Michael Haren
Não tem problema - feliz em estar de serviço, porque eu sei que isso é doloroso!
Sam Schutte
Além disso, pode ser que a causa real seja simplesmente uma instalação incorreta. Sei que, quando me deparei com isso, tudo parece bem, mas presumo que em algum lugar o registro ou a configuração esteja ferrado por algum motivo.
Sam Schutte
Pode valer a pena formatar o comando na etapa 6 como código, para facilitar dizer que o sinalizador é um 'i' maiúsculo.
Dave Andersen
9

Tente isso: http: //localhost/blah.aspx (deve ser uma página inexistente). Se ele fornecer um erro 404 em vez da página de erro do asp.net, o asp.net não estará em execução. Se o erro for 403, as permissões do site estão incorretas.

Aqui está uma lista de verificação que pode ajudar:

  • O IIS está em execução?
  • Seu site está sendo executado?
  • O pool de aplicativos do seu site está funcionando corretamente?
  • O ASP.NET está instalado e registrado?

    cd / d% windir% \ Microsoft.Net \ Framework \ v2.0.50727

    aspnet_regiis -ua

    aspnet_regiis -i -enable

  • O ASP.NET está em execução?

Verifique a guia "ASP.NET" nas propriedades do seu site. Verifique se está usando a versão correta.

  • As permissões estão configuradas corretamente?

Marque a guia "Diretório base" nas propriedades do seu site, marque a configuração "Executar permissões", que deve ser definida para permitir scripts. Verifique também as "Extensões de serviço da Web" para garantir que o asp.net tenha permissão para executar.

Cunha
fonte
Esta é uma boa lista para referência futura. Eu já tinha tentado tudo isso, exceto as opções -a e -enable, e a ideia blah.aspx. Reinstalar o IIS foi o necessário. Obrigado pela ajuda!
317 Michael Haren
Como é um pool de aplicativos em execução corretamente? Como é um pool de aplicativos em execução incorreta?
22630 Ian Boyd
Onde se encontra a "Extensão de serviço da Web" para garantir que o asp.net tenha permissão para executar?
22730 Ian Boyd
3

Abra o gerenciador do IIS, clique na pasta Extensões de serviço da Web no painel esquerdo. Em seguida, clique na extensão ASP.NET no painel direito e clique no botão Permitir.

slolife
fonte
Já é permitido, obrigado pela sugestão, no entanto #
Michael Haren
2

Você não precisa desinstalar / reinstalar o IIS para restabelecer o suporte .net, conforme a resposta anterior. Basta executar o utilitário aspnet_regiis.exe localizado na pasta apropriada do framwork, por exemplo:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
Conta
fonte
Faço isso de maneira diferente do que foi observado na minha pergunta? Se não, então eu já tentei isso.
267 Michael Haren
Por qualquer motivo, apenas executar regiis não ajuda.
Sam Schutte