Search code examples
iis-7wixinternet-explorer-7compatibility

WiX - HTTP Response Header


I am using WiX 3.10. for a website that is used in IE only. (.net 2.0)

We recently had a few users complaining about the disturbed layout, because their browser's compatibility setting.

One way of fixing this, seems to be adding a HTTP Response Header (Name: X-UA-Compatible, Value: IE=EmulateIE7) in the IIS

Can I do this somehow from the Product.WXS, so after installation, this would be set?

Thank you


Solution

  • Here is the sample code to setup a website and the HTTP Response header using WiX.

    <?xml version="1.0" encoding="UTF-8"?>
    <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
         xmlns:iis="http://schemas.microsoft.com/wix/IIsExtension">
        <Product Id="*" Name="IISTest" Language="1033" Version="1.0.0.0" Manufacturer="Microsoft" UpgradeCode="9670352d-2b30-446e-b17f-a31a7d08d917">
            <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
    
            <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
            <MediaTemplate />
    
            <Feature Id="ProductFeature" Title="IISTest" Level="1">
                <ComponentGroupRef Id="ProductComponents" />
          <ComponentGroupRef Id="MyWebsiteIISConfiguration" />
            </Feature>
        </Product>
    
      <Fragment>
        <Directory Id="TARGETDIR" Name="SourceDir">
          <!-- Will reference to C:\inetpub-->
          <Directory Id="INETPUB" Name="Inetpub">
            <Directory Id="WwwRoot" Name="WWWRoot">
            <!-- Will reference to c:\Inetpub\wwwroot\MyWebSite-->
            <Directory Id="INSTALLFOLDER" Name="MyWebSite" />
            </Directory>
                </Directory>
            </Directory>
        </Fragment>
    
      <Fragment>
        <DirectoryRef Id="INSTALLFOLDER">
          <Component Id="MyInstallWebsite" Guid="1253DBFC-D959-470E-A044-7DDABFFC1298" KeyPath="yes">
            <!-- Install to default web site -->
            <iis:WebSite Id="MyWebsiteWebsite" Description='MY Website' Directory='INSTALLFOLDER' AutoStart='yes' StartOnInstall='yes'>
              <iis:HttpHeader Id="header_id" Name="X-UA-Compatible" Value="IE=EmulateIE7"/>
              <iis:WebAddress Id="AllUnassigned" Port="80" />
              <iis:WebApplication Id="MyWebsiteApplication" Name="[MyWebsiteWebsite][WEBSITE_ID]" WebAppPool="MyWebsiteAppPool">
              </iis:WebApplication> 
            </iis:WebSite>
          </Component>
          <Component Id="MyWebsiteAppPool" Guid="" KeyPath="yes">
            <iis:WebAppPool Id="MyWebsiteAppPool"
                            Name="MyWebsiteAppPool"
                            Identity="applicationPoolIdentity"
                             ManagedPipelineMode="Integrated"
                            ManagedRuntimeVersion="v4.0" />
          </Component>
    
        </DirectoryRef>
      </Fragment>
    
        <Fragment>
        <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
          <Component Id="ProductComponent" Guid="{6F44232F-1C0B-4278-AB2B-BFD34FAE863C}">
            <File Id="favicon.ico" Source="favicon.ico" />
          </Component>
        </ComponentGroup>
        <ComponentGroup Id="MyWebsiteIISConfiguration">
          <ComponentRef Id="MyInstallWebsite" />
          <ComponentRef Id="MyWebsiteAppPool" />
        </ComponentGroup>
        </Fragment>
    </Wix>
    

    enter image description here