Using IIS Compression with blame.aspx
Moderator: SourceGear
Using IIS Compression with blame.aspx
I'm having a problem with Blame.aspx and IIS compression. With IIS Compression enabled (on IIS 6.0, windows server 2003 SP1), blame.aspx doesn't display (firefox and IE 7 both the same.). Using Fiddler indicates that the compressed data stream cannot be decompressed as its "incomplete". All the other VaultWeb pages that I've tried seem work fine.
Turning off IIS compression for blame.aspx, or the VaultWeb folder as a whole by adding the DoStaticCompression and DoDynamicCompression metabase properties, returns a response that the browsers can understand.
Ideally I wouldn't have to remove compression just for this file. What would be going wrong between IIS and blame.aspx to cause this, and how can I fix it?
Andy
Turning off IIS compression for blame.aspx, or the VaultWeb folder as a whole by adding the DoStaticCompression and DoDynamicCompression metabase properties, returns a response that the browsers can understand.
Ideally I wouldn't have to remove compression just for this file. What would be going wrong between IIS and blame.aspx to cause this, and how can I fix it?
Andy
Andy Brown
<a href="http://www.k2nenergy.com/index.htm" title="See how K2n can reduce your energy consumption and costs">K2n: Energy Monitoring Solutions</a>
<a href="http://www.k2nenergy.com/index.htm" title="See how K2n can reduce your energy consumption and costs">K2n: Energy Monitoring Solutions</a>
I couldn't reproduce this on my Windows 2003 SP 1 installation.
I enabled compress in IIS under Web Sites->Properties->Service->HTTP Compression. I elected to compress both application and static files.
Then I restarted IIS and logged in with a Vault 3.5.1 Client on the same machine and choose the View->Show Blame command. Blame came up fine.
Were your steps different? What version of Vault are you using? What error do you get when you try to view Blame?
Can you view blame with IE 6? We don't yet support IE 7, so perhaps that's part of the problem. What version of Firefox are you using?
I enabled compress in IIS under Web Sites->Properties->Service->HTTP Compression. I elected to compress both application and static files.
Then I restarted IIS and logged in with a Vault 3.5.1 Client on the same machine and choose the View->Show Blame command. Blame came up fine.
Were your steps different? What version of Vault are you using? What error do you get when you try to view Blame?
Can you view blame with IE 6? We don't yet support IE 7, so perhaps that's part of the problem. What version of Firefox are you using?
Linda Bauer
SourceGear
Technical Support Manager
SourceGear
Technical Support Manager
Hi Linda,
There maybe a few subtle differences between the installations. Specifically this was the process I used to enable compression (reference http://weblogs.asp.net/owscott/archive/ ... 57916.aspx).
1) Created compression folder
2) Used IIS snap-in to enable static and application file compression
3) Created a web service extension for c:\windows\system32\inetsrv\gzip.dll
4) Used metabse explorer to:
a) edit the compression levels (set to level 9 for both HcDynamicCompressionLevel and HcOnDemandCompLevel) for both deflate and gzip.
b) ensure that gzip was used for static compression only (HcDoStaticCompression set to 1)
c) set HcFileExtensions (static files) for both gzip and deflate to htm,html,txt,js
d) set HcScriptFileExtensions for both gzip and deflate to asp,dll,exe,aspx,asbx,ashx,asmx,axd,js and css (I have css files that are dynamically generated)
e) set HcCreateFlags to 0 for deflate and 1 for gzip
f) Checked that, underneath parameters, HcDoDynamic, HcDoStatic and HcDoOnDemand are set to 1.
g) Other settings: Buffer sizes are set to 8192, HcMinFileSizeForComp is 1.
Finally, IIS needs a reset for that website. I'm lazy, i used iisreset with no switches.
I used the cscript adusutil commands to disable the file compression against blame.aspx. If you don't then you need to add the metabase properties DoDynamicCompression and DoStaticCompression and set the properties on each of those to Inheritable, and UserType to File.
I'm using Firefox 2. I will boot up my IE 6/FF 1.5 Virtual Machine and try it on there shortly, but its worth noting that when I used Fiddler to send the request (i.e. independent of the browser) the compressed stream came back unreadable. Using fiddler to remove the compression headers in the request fixed the problem, as did turning off compression on the file in the metabase.
Did that work (break it) for your setup?
Andy
There maybe a few subtle differences between the installations. Specifically this was the process I used to enable compression (reference http://weblogs.asp.net/owscott/archive/ ... 57916.aspx).
1) Created compression folder
2) Used IIS snap-in to enable static and application file compression
3) Created a web service extension for c:\windows\system32\inetsrv\gzip.dll
4) Used metabse explorer to:
a) edit the compression levels (set to level 9 for both HcDynamicCompressionLevel and HcOnDemandCompLevel) for both deflate and gzip.
b) ensure that gzip was used for static compression only (HcDoStaticCompression set to 1)
c) set HcFileExtensions (static files) for both gzip and deflate to htm,html,txt,js
d) set HcScriptFileExtensions for both gzip and deflate to asp,dll,exe,aspx,asbx,ashx,asmx,axd,js and css (I have css files that are dynamically generated)
e) set HcCreateFlags to 0 for deflate and 1 for gzip
f) Checked that, underneath parameters, HcDoDynamic, HcDoStatic and HcDoOnDemand are set to 1.
g) Other settings: Buffer sizes are set to 8192, HcMinFileSizeForComp is 1.
Finally, IIS needs a reset for that website. I'm lazy, i used iisreset with no switches.
I used the cscript adusutil commands to disable the file compression against blame.aspx. If you don't then you need to add the metabase properties DoDynamicCompression and DoStaticCompression and set the properties on each of those to Inheritable, and UserType to File.
I'm using Firefox 2. I will boot up my IE 6/FF 1.5 Virtual Machine and try it on there shortly, but its worth noting that when I used Fiddler to send the request (i.e. independent of the browser) the compressed stream came back unreadable. Using fiddler to remove the compression headers in the request fixed the problem, as did turning off compression on the file in the metabase.
Did that work (break it) for your setup?
Andy
Andy Brown
<a href="http://www.k2nenergy.com/index.htm" title="See how K2n can reduce your energy consumption and costs">K2n: Energy Monitoring Solutions</a>
<a href="http://www.k2nenergy.com/index.htm" title="See how K2n can reduce your energy consumption and costs">K2n: Energy Monitoring Solutions</a>
Linda,
That's fine. I've disabled compression on blame.aspx for the moment anyway. I've also reproduced the situation on another web server plugged into the same vault database.
Out of interest - does simply enabling compression in IIS under Web Sites->Properties->Service->HTTP Compression actually do compression? I had assumed, after reading that article, that you had to go through the extra steps to get it to work. I seem to recall trying that first, and not seeing compression happening when I checked it with Fiddler.
Andy
That's fine. I've disabled compression on blame.aspx for the moment anyway. I've also reproduced the situation on another web server plugged into the same vault database.
Out of interest - does simply enabling compression in IIS under Web Sites->Properties->Service->HTTP Compression actually do compression? I had assumed, after reading that article, that you had to go through the extra steps to get it to work. I seem to recall trying that first, and not seeing compression happening when I checked it with Fiddler.
Andy
Andy Brown
<a href="http://www.k2nenergy.com/index.htm" title="See how K2n can reduce your energy consumption and costs">K2n: Energy Monitoring Solutions</a>
<a href="http://www.k2nenergy.com/index.htm" title="See how K2n can reduce your energy consumption and costs">K2n: Energy Monitoring Solutions</a>
I followed the steps here to enable global HTTP compression by using IIS Manager:
http://www.microsoft.com/technet/prodte ... x?mfr=true
http://www.microsoft.com/technet/prodte ... x?mfr=true
Linda Bauer
SourceGear
Technical Support Manager
SourceGear
Technical Support Manager
-
- Posts: 28
- Joined: Tue Feb 17, 2004 7:42 am
- Location: UK
- Contact:
Repro on Windows Server 2003 R2, Vault 3.1.9
One of my colleagues enabled IIS Compression on our Vault server (which also serves a number of test websites - yes we should definitely have independent systems!) and Blame stopped working, with a blank page in IE 7.0. Fiddler and Wireshark both show that an effectively empty response is returned (it consists of only a gzip stream header with no data).
The list of steps he used can be found at http://www.uhleeka.com/2004/06/http-com ... iis-6.html.
Ironically compression was turned on to work around some rendering issue with his website - allegedly when uncompressed, one version of IE crashes. Unfortunately fixing this is on the back burner.
The list of steps he used can be found at http://www.uhleeka.com/2004/06/http-com ... iis-6.html.
Ironically compression was turned on to work around some rendering issue with his website - allegedly when uncompressed, one version of IE crashes. Unfortunately fixing this is on the back burner.
-
- Posts: 28
- Joined: Tue Feb 17, 2004 7:42 am
- Location: UK
- Contact:
Sorry, I forgot to mention that.
Windows Server 2003 R2. We have not yet applied SP2 on this server. .NET Framework 1.1 SP1 and Framework 2.0 RTM are installed, the VaultService and VaultShadowFolder applications are configured to run in their own AppPool (that is, they share one AppPool independent from all other AppPools), and they're configured for ASP.NET 1.1.
Windows Server 2003 R2. We have not yet applied SP2 on this server. .NET Framework 1.1 SP1 and Framework 2.0 RTM are installed, the VaultService and VaultShadowFolder applications are configured to run in their own AppPool (that is, they share one AppPool independent from all other AppPools), and they're configured for ASP.NET 1.1.