IIS7 Minimum HttpModules Configuração para o site de conteúdo estático

3

Estou tentando configurar um site de conteúdo estático em cache realmente rápido, compactado e em cache para servir somente a .jpg, .css e .js

Desejo remover todas as funcionalidades da configuração do website que não são necessárias:

Mas esta configuração continua falhando:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
     <urlCompression doStaticCompression="true" doDynamicCompression="false" />
    <caching enabled="true" enableKernelCache="true">
      <profiles>
        <add extension=".gif" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
        <add extension=".png" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
        <add extension=".js" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
        <add extension=".css" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
        <add extension=".jpg" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
        <add extension=".jpeg" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
      </profiles>
    </caching>
    <staticContent>
      <remove fileExtension=".js" />
      <mimeMap fileExtension=".js" mimeType="text/javascript" />
      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
    </staticContent>
        <modules>
            <clear />
            <add name="HttpRedirectionModule" lockItem="false" />
            <add name="StaticFileModule" lockItem="false" />
            <add name="CustomLoggingModule" lockItem="false" />
            <add name="CustomErrorModule" lockItem="false" />
            <add name="IsapiModule" lockItem="false" />
            <add name="AnonymousAuthenticationModule" lockItem="false" />
        </modules>  
</system.webServer>
</configuration>
    
por Robs 24.02.2010 / 13:01

1 resposta

2

Você realmente não disse o que está falhando ou forneceu mensagens de erro - mas eu vou sair em um membro e adivinhar.

Meu palpite é que quando você está fazendo o <clear /> dentro dos módulos você está recebendo um erro de "Violação de Bloqueio". Isso ocorre porque, no nível mais alto da hierarquia de configurações do IIS7, a seção de módulos (e os próprios módulos individuais) é definida como bloqueada para que você não possa substituí-los / removê-los em um arquivo web.config. Isso ocorre por design, uma vez que os módulos são realmente o que compõem um sistema IIS em execução.

Para poder fazer um <clear /> de módulos no web.config, você precisa fazer o seguinte:

  • Faça uma cópia de backup de %windir%\System32\inetsrv\config\applicationHost.config
  • Abra %windir%\System32\inetsrv\config\applicationHost.config - você precisará abrir seu editor como administrador. Além disso, se você estiver no Windows 64 bits, será necessário usar um editor de 64 bits para ver o arquivo.
  • Encontre a área <configSections> - no sectionGroup para system.WebServer - haverá uma linha que diz:
    <section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" />
    Altere o overrideModeDefault para Allow em vez de Deny .

Isso ainda não permitirá que você faça um <clear /> no web.config / modules, porque muitos dos módulos principais são bloqueados individualmente.

  • Agora, procure a seção <modules> no applicationHost.config.
  • Muitos dos módulos listados aqui têm o atributo lockItem definido como True . Altere todos para serem False .
  • Salve seu aplicativoHost.config.

Agora você deve conseguir <clear /> modules no seu arquivo web.config.

    
por 24.02.2010 / 16:14