Enabling IIS compression breaks NTD deployment

For the last couple of months, I have been scouring the internet for reasons why my NTD application would not deply from my Windows 2003 server, but works fine from a Windows 2000 server.  I had tried all of the suggestions I found in various forums without any change.  

Then last week (4/19/2004) n message appeared in dotnetjunkies.com forum on IIS compression that claimed that IIS compression makes NTD stop working.  A light went off because I realized that my Windows 2003 server has IIS compression enabled, but is not enabled on the Windows 2000 server.  So I looked into if I could disable compression on a specific virtual directory, and found that I could use the absutil.vbs util to do this.  I executed the required commands on the Windows 2003 server and Voila!!, my NTD aplication started deploying successfully.

I used to following commands from the \Inetpub\AdminScripts directory:

cscript adsutil.vbs set w3svc/{site#}/root/{vdir name}/DoStaticCompression False
cscript adsutil.vbs set w3svc/{site#}/root/{vdir name}/DoDynamicCompression False

To get the {site#}, click on the "Web Sites" node in the IIS manager and note the "Identifier" number in the right-hand Detail pane for the top-level website that contains the NTD application.

I hope this helps anybody else that may be experiencing similar problems.


Answer this question

Enabling IIS compression breaks NTD deployment

  • tcbh

    This post helped me immensely. I was in a bind and had the same issues. The suggested commands fixed my issue. Thanks evisner!
  • Dawidoco

    You'll be happy to know that the ClickOnce feature of the next version of the .NET Framework (the successor to NTD) supports IIS compression.
  • tendresse

    I've experienced the same problem.  I hosted the assembly on IIS 6 (I also had compression enabled) and I was able to eventually work out how to deploy the control successfully thanks to your suggestions.

    I'm just about to update to .Net Framework 1.1 SP1 and see if I can replicate the problem...

  • Kype

    With the security updates to .Net Framework version 1.1 it all works fine without the convoluted process.
  • Lino!

    I had the problem that a windows forms control hosted in IE was not working when I placed the page and assembly on an IIS6 (as I later noticed with http-compression enabled). Instead of the control only an empty box with a red x in the left upper corner was displayed. Exactly the same assembly and html-page were working on another apache server. 

    In my page I embedded the control with an object-tag like so:
    <object classid="http:ctrllib.dll#myns.iectrl" height="100" width="100"></object> - I also tried to specify the full URL with complete domain name but that did not change anything.

    To create an equal testing environment I always cleared my internet cache and used gacutil /cdl to clear the assembly download cache.

    As suggested by kb (http://support.microsoft.com/default.aspx scid=kb;en-us;313892) I enabled iehost-debugging to figure out what went wrong when navigating to my testpage on the IIS6. The iehost log showed that a System.IO.FileNotFoundException ("File or assembly name ctrllib.dll, or one of its dependencies, was not found") had been thrown - what was quite strange because I was able to download the assembly manually by entering it's URL in the URL combo box. Even more surprising was that once I had downloaded the dll manually and I returned to my test-page it suddenly properly loaded the control. By downloading the assembly manually it had been placed into the assembly download cache and was listed when executing gacutil /ldl. -> But once I clreared IE and download cache again the problem reoccured.

    After many failing tests that I had run during the last two weeks I am now no longer able to reproduce the problem! I believe this may be becasue I installed .net 1.1 SP1 yesterday night but I am not sure... I scanned the list (http://support.microsoft.com/ kbid=867460) of probs that were corrected by SP1 but did not find anything related to iehost.

    Could it be that an error in connection with iehost and http-compression has been corrected in the SP1 of the .net Framework 1.1  Who else has experience with the fusion/iehost FileNotFound Exception in conjunction with IIS6

  • LeafBug_2k2

    I will spell out the problem, because I was not able to locate this thread before I found out that the issue is a compression issue.

    My no touch deployment application stopped delivering the referenced dll files to the client recently.

    The exe and the config files were delivered fine, but the referenced dll files were not.

    The IEXEC complained about the referenced files not found on the various locations. It listed the locations in the error message, and I was able to see that the very first location was actually the right one.

    I opened a support ticket, and we resolved the issue being HTTP compression on our web server.

    We disabled HTTP compression and it works again now.

    I do not have a comment on the service pack, but definitely will follow up on here.

    Hope it helps.



  • ckur001

    I have .net Framework 1.1.4322.2300, which is Service Pack 1Included with Windows Server 2003 32-bit Service Pack 1...

    so the IIS 6.0 compression support problem is still out there with .net framework 1.1 Service Pack 1.

    fyi

    PS:

    By the way, it is still clumsy to get compression working with xml web services too...

    Wouldn't one expect ASP.NET XML WEB services to be compression-enabled by default, given the performance benefit

    Well, it is NOT.



  • Enabling IIS compression breaks NTD deployment