O IIS7 retorna em branco quando o conteúdo estático é solicitado

14

Estou tentando configurar uma máquina de demonstração que é EEEPC com Windows 7 Home Premium edition com todos os drivers carregados corretamente (não me pergunte por que é a edição Home) com o IIS7 instalado.

Implantei o aplicativo para ser demonstrado na máquina que é um site ASP.NET MVC, adicionado site pelo console, adicionado um pool de aplicativos. O pool de aplicativos é executado como NetworkService e o convidado é autenticado como IUSR.

Adicionei direitos de modificação ao NetworkService e direitos de leitura e execução ao IUSR na pasta do site e seu conteúdo.

Quando chego à raiz da web, digamos http://example.com/ Obtém um HTML adequado renderizado no site (o que significa que o aplicativo funciona), mas o problema é que todo o conteúdo estático retorna em branco.

Não sei por que isso está acontecendo. Nenhuma página de erro 404 ou 500, apenas resposta vazia quando eu acessar conteúdo estático. Todo o conteúdo gerado pelo ASP.NET funciona bem (embora um pouco estranho, pois todo o CSS e as imagens não serão carregados)

Por favor, ajude, o IIS7 Management Console é muito confuso para mim e preciso da máquina amanhã.

chakrit
fonte

Respostas:

2

No meu caso, a função de servidor já estava instalada e, no entanto, o manipulador estático serviu páginas em branco, mesmo para um site de teste trivial com apenas um mapeamento de manipulador.

A correção foi ativar a restrição de solicitação "Invocar manipulador apenas se a solicitação for mapeada para". Não importa se eu o defino como "Arquivo" ou "Arquivo ou diretório"; contanto que a caixa de seleção esteja ativada, ela funciona:

                  insira a descrição da imagem aqui

Se isso ainda não ajudar, outra coisa que leva a páginas em branco é tentar especificar um caminho na seção "Caminho da solicitação", como publicou talvez public/*. O último está simplesmente errado, enquanto o primeiro deve ser aceito, mas resulta em páginas em branco. A solução é agrupar o mapeamento do manipulador em uma <location path='public'>seção, especificando *a configuração "Caminho da solicitação". Ou, no Gerenciador do IIS, expanda o site e selecione sua pasta primeiro, depois edite os mapeamentos do manipulador.

RomanSt
fonte
1

Como o @MattB sugeriu, eu não tinha o recurso "Conteúdo estático" ativado, mas isso é apenas uma parte do problema.

Adicionei o recurso "Artigo estático" e, ainda assim, o problema persiste, removendo o MvcHttpHandler padrão da lista de mapeamentos de manipulador e, de alguma forma, o problema se resolve ... então o problema era que o MvcHttpHandler estava interceptando solicitações antes do StaticFileHandler,

Para sua informação, depois de instalar o "Artigo Estático", verifique também se ...

  1. No Internet Information Services Manager, clique no seu site.
  2. Clique duas vezes no recurso "Mapeamentos de manipulador".
  3. No lado direito (o painel Ação), você verá um link intitulado "Exibir lista de pedidos ..." e clique nele.
  4. Você encontrará a ordem em que o módulo corresponde a cada solicitação, verifique se a ordem faz sentido.

No meu caso, o MvcHttpHandler estava acima de tudo, resolvi o problema movendo-o para o final da lista, que é o local mais sensato para ele, pois os manipuladores de arquivos AXD, os manipuladores TRACE, o manipulador de OPÇÕES e o conteúdo estático são instáveis. em lidar com a solicitação primeiro.

Espero que isso ajude alguém pesquisando pelo mesmo problema :-)

chakrit
fonte