Using IIS Compression with blame.aspx

If you are having a problem using Vault, post a message here.

Moderator: SourceGear

Post Reply
AGBrown
Posts: 34
Joined: Wed Aug 10, 2005 1:42 pm
Contact:

Using IIS Compression with blame.aspx

Post by AGBrown » Sun Feb 18, 2007 2:40 pm

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
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>

lbauer
Posts: 9736
Joined: Tue Dec 16, 2003 1:25 pm
Location: SourceGear

Post by lbauer » Mon Feb 19, 2007 9:31 am

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?
Linda Bauer
SourceGear
Technical Support Manager

AGBrown
Posts: 34
Joined: Wed Aug 10, 2005 1:42 pm
Contact:

Post by AGBrown » Mon Feb 19, 2007 10:35 am

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
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>

lbauer
Posts: 9736
Joined: Tue Dec 16, 2003 1:25 pm
Location: SourceGear

Post by lbauer » Mon Feb 19, 2007 12:59 pm

This is somewhat more complex than the basic configuration I used. Since we haven't tested Vault with this, I'll log a bug and we'll investigate this after 3.5.2 is released.
Linda Bauer
SourceGear
Technical Support Manager

AGBrown
Posts: 34
Joined: Wed Aug 10, 2005 1:42 pm
Contact:

Post by AGBrown » Mon Feb 19, 2007 1:08 pm

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
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>

lbauer
Posts: 9736
Joined: Tue Dec 16, 2003 1:25 pm
Location: SourceGear

Post by lbauer » Mon Feb 19, 2007 3:56 pm

I followed the steps here to enable global HTTP compression by using IIS Manager:
http://www.microsoft.com/technet/prodte ... x?mfr=true
Linda Bauer
SourceGear
Technical Support Manager

Mike Dimmick
Posts: 28
Joined: Tue Feb 17, 2004 7:42 am
Location: UK
Contact:

Repro on Windows Server 2003 R2, Vault 3.1.9

Post by Mike Dimmick » Wed Apr 30, 2008 7:25 am

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.

lbauer
Posts: 9736
Joined: Tue Dec 16, 2003 1:25 pm
Location: SourceGear

Post by lbauer » Wed Apr 30, 2008 3:18 pm

Interesting.

What operating system is your Vault server on? We'll look into this.
Linda Bauer
SourceGear
Technical Support Manager

Mike Dimmick
Posts: 28
Joined: Tue Feb 17, 2004 7:42 am
Location: UK
Contact:

Post by Mike Dimmick » Wed Apr 30, 2008 4:14 pm

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.

lbauer
Posts: 9736
Joined: Tue Dec 16, 2003 1:25 pm
Location: SourceGear

Post by lbauer » Thu May 01, 2008 4:48 pm

Thanks.
Linda Bauer
SourceGear
Technical Support Manager

Post Reply