IIS8.5 não servirá arquivos de fonte

IIS8.5 não servirá arquivos de fonte

Por alguma razão, meu IIS não retornará nenhum arquivo de fonte. Todos eles retornam como 404s. Verifiquei que os URLs estão corretos e os tipos MIME estão corretos. Os arquivos de fontes estão atualmente dentro de um projeto .NET 4.5 usando MVC4. Quando movo os arquivos para fora do projeto, para o diretório raiz do servidor, os arquivos são exibidos corretamente. Verifiquei que não há nenhuma substituição no web.config do projeto sobre como as extensões de arquivo são tratadas.

Até agora, isso está acontecendo com arquivos .TTF, .EOT, .SVG e .WOFF. Outros arquivos estáticos, no mesmo diretório, são retornados corretamente. Existe alguma configuração no IIS8.5 que impede o retorno dos arquivos de fonte?

Anexei um arquivo de log que foi gerado pelo rastreamento de solicitação com falha.

https://dl.dropboxusercontent.com/u/39382497/fr000001.xml

Responder1

Esse problema parece ter sido resolvido durante o trabalho no projeto. Andrew Morton forneceu algumas etapas excelentes para solução de problemas para qualquer pessoa com problemas semelhantes. Vou fornecer uma lista rápida:

  • Verifique se o tipo MIME correto está sendo usado pelo servidor. Usando Gerenciador IIS > Servidor > Projeto > Tipos MIME. Aqui está a lista de tipos MIME que estão funcionando para mim:

    • .eot = aplicativo/vnd.ms-fontobject
    • .svg = imagem/svg+xml
    • .ttf = aplicativo/fluxo de octetos
    • .woff = aplicativo/x-font-woff
  • Se isso não funcionar, verifique se o servidor web tem permissões na pasta do projeto e na pasta que armazena os arquivos. Seguindoum tutorialvai ajudar muito.

  • Depuração adicional usando uma ferramenta comoMonitor de Processoajudará a identificar problemas de servidor mais persistentes.

Espero que isso ajude alguém.

Responder2

Eu diagnostiquei minha resolução examinando os códigos de status no log de erros do ISS.

sc-status sc-substatus sc-win32-status

500 0 1346

O status win32 indica que

ERROR_BAD_IMPERSONATION_LEVEL

1346 (0x542)

Um nível de representação obrigatório não foi fornecido ou o nível de representação fornecido é inválido.

https://docs.microsoft.com/en-gb/windows/win32/debug/system-error-codes--1300-1699-

Acontece que existe um artigo da MS sobre esta falha.

https://blogs.msdn.microsoft.com/asgoyal/2012/08/25/one-thing-you-must-do-when-getting-http-500-0-1346-error/

Verifique se a identidade do pool de aplicativos do respectivo aplicativo faz parte da política 'Representar um cliente após autenticação'. É um requisito que a identidade do pool de aplicativos faça parte desta política, diretamente ou por associação herdada.

Para verificar esta política – vá para iniciar –> executar –> secpol.msc –> Políticas locais –> Atribuição de direitos de usuário

Para mim, o problema era que o grupo 'IIS_IUSRS' estava faltando nesta política.

Responder3

tente isto:

  1. crie um arquivo html em [seu editor preferido] que escreva algo descritivo em um navegador para que você saiba que foi resolvido:

    delerium tremens, nada demais

  2. teste-o para garantir que é um HTML válido
  3. coloque-o no diretório de origem de suas fontes - evidenciado pelos erros 404 nas ferramentas de desenvolvimento de [seu navegador preferido] (deve ser um caminho relativo)
  4. navegue até ele - isso resolve?

se sim, é um problema de configuração com os tipos MIME no seu servidor de aplicativos

se não, suas fontes não foram resolvidas porque o caminho esperado está incorreto - observe o erro 404 do arquivo .html e ele deverá revelar de onde o servidor de aplicativos está procurando suas fontes, exibindo um caminho unc relativo à raiz da web

informação relacionada