IIS 6: HTTP Compression Problem

Short Version

  • Error: Internet Explorer cannot display the webpage
  • Solution: Disable “HTTP Compression” in both Web extension and “Service” tab of Website properties

This short version is for those who are not interested about the details of this problem.

Long version

It took me almost 2 days to figure out about this issue so I’m going to share the details with you guys in this post. But as I didn’t use IIS 6 for long time and my main technical expertise is not IIS, the solution that I found might not be the best solution. If you guys know better solution for this issue, please feel free to share with us in comment section. Thanks!

Environment

Our server is Windows 2003 advanced server. We have .NET 1, .NET 2 and .NET 4 installed on that server. The existing website which is written in ASP.NET 2.0 is currently running on that server.

Problem

We got this issue when we tried deploying our new web application which is a hybrid app of ASP.NET 4.0 and ASP.NET MVC 3 on that server. To my surprise, ASP.NET MVC works great fine but ASP.NET 4.0 pages drove us crazy. I thought that the problem might come from the fact that our application is a hybrid so I created a brand new ASP.NET 4.0 application in Visual Studio 2010 and published it on the server but it didn’t work. It’s very weird because MVC project is working fine so .NET 4 framework shouldn’t have any problem but couldn’t figure out why ASP.NET 4.0 site wasn’t working.

In order to narrow down the problem, I created new Virtual Directory and new application pool and put a HTML page in that directory so we don’t need to worry about .NET issue. but this issue was getting more weird. Can you guess what happened? When I tried accessing that page from browser, it was working fine for the first time request but it didn’t work for second time request. I got different errors as below in different browsers.

IE

Internet Explorer cannot display the webpage

Google Chrome

This web page is not available The web page at http://19x.10x.10x.2:17x/simpleweb/c.html might be temporarily down or it may have moved permanently to a new web address. Error 330 (net::ERR_CONTENT_DECODING_FAILED): Unknown error.

Firefox

Content Encoding Error The page you are trying to view cannot be shown because it uses an invalid or unsupported form of compression. Please contact the website owners to inform them of this problem.

IE didn’t give any information as usual (well, we love IE! :P ) but when I saw the error message in Firefox, the encoding and gzip things came into my mind but I wasn’t so sure whether IIS server stopped responding the second request or the encoding issue. I looked at IIS log. As you can see below, IIS returns 200 so IIS wasn’t blocking the second request.

IIS log

#Software: Microsoft Internet Information Services 6.0
#Version: 1.0
#Date: 2011-12-14 06:27:57
#Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status sc-bytes cs-bytes

2011-12-14 06:29:27 W3SVC1531730165 127.0.0.1 GET /simpleweb/d.html – 170 – 127.0.0.1 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.2;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727;+.NET4.0C;+.NET4.0E) – 200 0 0 378 284

Just to make it more sure, I used Fiddler to capture the traffic between the browser and server. I managed to get the response but when I viewed the response stream, I got this error below in Fiddler.

—————————
Fiddler: UnGZip failed
—————————
The content could not be decompressed.
The magic number in GZip header is not correct. Make sure you are passing in a GZip stream.
—————————
OK
—————————

Solution

As Fiddler showed that there is something wrong with gzip, I decided to turn off the HTTP compression on that server.

How to turn off the HTTP compression on IIS 6? It’s pretty simple. Go to the properties of Website (not virtual directory or application) and uncheck “Compress application files” and “Compress static files” on “Service” tab. And set “Prohibit” to “HTTP Compression” in Web extension.

Note that I tested HTTP compression on fresh 2003 server and it works so I think gzip assembly got some problems on that server only. That’s why I mentioned that disabling HTTP compression might not be the best solution but we decided to stop experimenting it for now because we are using 2003 server temporarily. I don’t think it’s good idea to host ASP.NET 4 app and MVP app on IIS 6 so we are going to get new Windows 2008 R2 service with IIS 7 later.. But yeah. if you have a better solution then please share with us.

Credits: Thank you all to everyone who gave a lot of suggestions for this issue. You guys helped me a lot. Thanks! 

Problems in Internet Link Connectivity

I have received one email as below from Network Team.

An earthquake that occurred in Taiwan damaged the submarine communications cables and that is causing poor link connectivity in Asian areas. There has been some disruption to telephone links, and an undersea cable to the United States may have been damaged.

http://news.bbc.co.uk/1/hi/business/the_economy/455482.stm

According to the news from TechInfo, solutions are still far from certain.

http://www.alertnet.org/thenews/newsdesk/TP172793.htm

Taiwan quake kills two, undersea cables damaged
27 Dec 2006 01:15:55 GMT
Source: Reuters

TAIPEI, Dec 27 (Reuters) – Two people were killed and 42 injured when three buildings collapsed in earthquakes that shook southern Taiwan, authorities said on Wednesday.

The two dead were caught in the collapse of a furniture factory in the southern city of Hengchun, where eight people, including four children, were trapped for a time, the National Fire Agency said in a statement.

While a tsunami warning came to nothing, the quake damaged at least six undersea telecommunication cables, affecting users in Taiwan and South Korea, and was felt in China and Hong Kong.

The biggest quake, measured by Taiwan’s Central Weather Bureau at magnitude 6.7 and at magnitude 7.1 by the U.S. Geological Survey, struck off the island’s southern coast at 8:26 p.m. (1226 GMT) on Tuesday — the second anniversary of a massive earthquake and tsunami that left more than 230,000 people in Asia either dead or missing.

Further quakes through the evening in Taiwan were measured at up to magnitude 7.0 by the U.S. agency.

KT Corp. <030200.KS>, South Korea’s top fixed-line and broadband service provider, said in a statement that some of its international lines were affected by the quake.

(Six) submarine cables are not working due to the earthquake near Taiwan. We are making best efforts to restore the service in a speedy manner,” the company said in a statement to Reuters.

An official from Chunghwa Telecom <2412.TW>, Taiwan’s largest telecoms operator, said none of its lines were disrupted but some businesses reported problems on Wednesday morning. (Additional reporting by Rhee So-eui in Seoul)

Areas affected:

  • VPN between India à Japan, Emails to & from outside world
  • grapecity.com website :(
  • Websites connecting to Asia and US

How to use CuteFTP v4.2.6b – User Guide

Steps to install ~

  • Just run the exe “cute4232bc.exe: .. install as same as normal installation.
  • If CuteFTP ask you to put the HTTP Proxy Server then you should put ur firewall server, port, your domain accout and pwd (*It’s not required if you dont hav any Proxy Server.)

  • Cancel all other dialogs (i.e: Connection Wizard or ISP Chooser)
  • Launch CuteFTP (Start Menu > GolbalSCAPE > CuteFTP > CuteFTP )

  • One Dialog “Site Manager” will be shown as soon as the application is started.
  • Cancle this dialog
  • Click on this Icon. (Check the Image below)

  • Type URL, User Name and Pwd
  • Click on Connect(Check the Image below)

  • If it’s working fine then u will get this dialog as below.

  • Click OK button.


Finally, you got it now!

Remote Desktop Protocol

Remote Desktop Protocol
Remote Desktop and Remote Assistance. ( Articles Collections )
http://labmice.techtarget.com/windowsxp/NetworkingXP/remote_desktop.htm

How to change the listening port for Remote Desktop
http://support.microsoft.com/?kbid=306759

  1. Start Registry Editor.
  2. Locate and then click the following registry subkey: H_L_M\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp\PortNumber
  3. On the Edit menu, click Modify, and then click Decimal.
  4. Type the new port number, and then click OK.
  5. Quit Registry Editor.

How to configure the Remote Desktop client to connect to a specific port when you use Windows XP
http://support.microsoft.com/kb/304304/

  1. Click Start, click All Programs, point to Accessories, point to Communications, and then click Remote Desktop Connection.
  2. In the Computer box, type the computer name or the IP address of the computer that you want to connect to, followed by a colon (:) and the port number that you want to use.

For example, to connect to port 3390 on a computer that is named “MyXPPro,” type the following information:
MyXPPro:3390
To connect to port 3391 on a computer with IP address 10.10.10.1, type the following information:
10.10.10.1:3391

3. Click Connect.

Remote Desktop Connection Software Download
http://www.microsoft.com/windowsxp/downloads/tools/rdclientdl.mspx

Installing Remote Desktop Web Connection in Windows XP
http://support.microsoft.com/?kbid=284931