Obtendo compactação HTTP (GZip) para trabalhar com roteamento de URL no IIS 6

3

Eu não vi nenhuma pergunta que abordasse especificamente esse problema específico.

Quando o roteamento de URL é usado, a solicitação entra no IIS e é roteada para a página Aspx. Por exemplo, um site: www.site.com/products pode encaminhar o pedido para wwwroot / inetpub / mysite / pages / productsPage.aspx

É importante observar que a página é ROUTED, não ReDirected.

Observe que, para que as URLs funcionem corretamente no IIS 6, é necessário configurar uma extensão Wildcard que direcione todos os recursos para o Asp.Net (o Asp.Net entregará recursos estáticos novamente ) Isso está documentado aqui: link

Parece que o IIS não GZip o conteúdo quando o envia de volta. Eu segui as instruções aqui: link

para ativar a compactação do IIS 6.

Alguma idéia de por que a Compressão Http parece não funcionar? Parece funcionar bem em outros sites no meu servidor. Apenas aquele com roteamento de URL não está funcionando

    
por Armstrongest 10.06.2009 / 22:05

4 respostas

1

Faça o seu aplicativo asp.net gzip sua própria saída com um método como este .

    
por 12.06.2009 / 22:40
1

A melhor coisa a fazer é usar o HttpCompress da Bel Lowery. É um HttpModule simples, gratuito e de código aberto que manipula a compactação HTTP de suas páginas. Você pode usá-lo em combinação com a opção IIS Http Compression.

Eu uso o HttpCompress em combinação com o Vici MVC e funciona bem!

Eu tenho procurado na net por horas e era ou usar o HttpCompress, comprar um projeto comercial (o Port80 Software tem uma solução) ou escrever meu próprio HttpModule.

PS: o IIS faz a compactação HTTP com base na extensão do arquivo. É por isso que não está funcionando para sites que usam roteamento de URL.

    
por 16.06.2009 / 10:31
0

Você tentou dessa maneira? MS KB322603

Para habilitar o IIS 5.0 para compactar páginas .aspx, siga estas etapas:

  1. Abra um prompt de comando.
  2. Digite net stop iisadmin e, em seguida, pressione ENTER.
  3. Digite cd C: \ InetPub \ adminscripts e pressione ENTER.
  4. Digite o seguinte e pressione ENTER:   CSCRIPT.EXE ADSUTIL.VBS SET W3Svc / Filtros / Compressão / GZIP / HcScriptFileExtensions "asp" "dll" "exe" "aspx"
  5. Digite o seguinte e pressione ENTER:   CSCRIPT.EXE ADSUTIL.VBS SET W3Svc / Filtros / Compressão / DEFLATE / HcScriptFileExtensions "asp" "dll" "exe" "aspx"
  6. Digite net start w3svc e pressione ENTER.
por 10.06.2009 / 22:11
0

Desculpe estar tão atrasado na discussão, mas como (ainda) preciso habilitar a compactação do IIS 6 em um site MVC, aqui está uma solução nativa do IIS 6 que encontrei: Incluir em extensões compactadas axd . Suponhamos que você tenha a extensão do IIS 6 com menos suporte a URLs do .Net framework 4 corretamente habilitado.

Eu fiz isso diretamente na Metabase do IIS. (Conforme explicado aqui ; %windir%\systems32\inetsrv\metabase.xml . para editá-lo, parar o IIS ou habilitar a "edição dinâmica da metabase" no IIS e fazer o backup dele.

Extrair da minha configuração:

<IIsCompressionScheme   Location ="/LM/W3SVC/Filters/Compression/deflate"
    HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
    HcCreateFlags="0"
    HcDoDynamicCompression="TRUE"
    HcDoOnDemandCompression="TRUE"
    HcDoStaticCompression="TRUE"
    HcDynamicCompressionLevel="9"
    HcFileExtensions="htm
        html
        txt
        xml
        css
        js"
    HcOnDemandCompLevel="10"
    HcPriority="1"
    HcScriptFileExtensions="asp
        dll
        exe
        cgi
        aspx
        asmx
        ashx
        axd"
>
</IIsCompressionScheme>
<IIsCompressionScheme   Location ="/LM/W3SVC/Filters/Compression/gzip"
    HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
    HcCreateFlags="1"
    HcDoDynamicCompression="TRUE"
    HcDoOnDemandCompression="TRUE"
    HcDoStaticCompression="TRUE"
    HcDynamicCompressionLevel="9"
    HcFileExtensions="htm
        html
        txt
        xml
        css
        js"
    HcOnDemandCompLevel="10"
    HcPriority="1"
    HcScriptFileExtensions="asp
        dll
        exe
        cgi
        aspx
        asmx
        ashx
        axd"
>
</IIsCompressionScheme>
<IIsCompressionSchemes  Location ="/LM/W3SVC/Filters/Compression/Parameters"
    HcCacheControlHeader="max-age=86400"
    HcCompressionBufferSize="8192"
    HcCompressionDirectory="%windir%\IIS Temporary Compressed Files"
    HcDoDiskSpaceLimiting="TRUE"
    HcDoDynamicCompression="TRUE"
    HcDoOnDemandCompression="TRUE"
    HcDoStaticCompression="TRUE"
    HcExpiresHeader="Wed, 01 Jan 1997 12:00:00 GMT"
    HcFilesDeletedPerDiskFree="256"
    HcIoBufferSize="8192"
    HcMaxDiskSpaceUsage="99614720"
    HcMaxQueueLength="1000"
    HcMinFileSizeForComp="1"
    HcNoCompressionForHttp10="FALSE"
    HcNoCompressionForProxies="FALSE"
    HcNoCompressionForRange="FALSE"
    HcSendCacheHeaders="FALSE"
>
</IIsCompressionSchemes>

Rational: dentro do capô, extensões menos URLs funcionam no IIS 6 chamando uma página eurl.axd . Veja este blog para uma explicação mais detalhada sobre extensões menos URLs no IIS6 com fx4.

    
por 27.05.2013 / 11:16