Search code examples
azureiisrolestrace

How to add Tracing to IIS under Windows Server 2012 R2 under Azure


We are currently struggling to add Tracing to the roles on a Windows Server 2012 R2 under Azure. We have been working through Avanti's description of the procedure but consistently encounter a failure about 2/3 of the way through. We get to the screen that says "Feature installation" of "Web Server (IIS) > Web Server > Health and Diagnostics > Tracing" only to have the following text appear:

The request to add or remove features on the specified server failed. Installation of one or more roles, role services, or features failed. Error: 0x800f0922

A slightly redacted version of DeploymentConfigTemplate.xml is provided below in case it's meaningful:

<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04">
    <Obj RefId="0">
        <TN RefId="0">
            <T>System.Collections.ObjectModel.Collection`1[[System.Management.Automation.PSObject, System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]</T>
            <T>System.Object</T>
        </TN>
        <LST>
            <Obj RefId="1">
                <TN RefId="1">
                    <T>Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/ServerManager/ServerComponent_Web_Http_Tracing</T>
                    <T>Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/ServerManager/MSFT_ServerManagerServerComponentDescriptor</T>
                    <T>Microsoft.Management.Infrastructure.CimInstance#ServerComponent_Web_Http_Tracing</T>
                    <T>Microsoft.Management.Infrastructure.CimInstance#MSFT_ServerManagerServerComponentDescriptor</T>
                    <T>Microsoft.Management.Infrastructure.CimInstance</T>
                    <T>System.Object</T>
                </TN>
                <ToString>ServerComponent_Web_Http_Tracing</ToString>
                <Props>
                    <S N="PSComputerName">SOME-COMPUTER-NAME</S>
                </Props>
                <MS>
                    <I32 N="NumericId">159</I32>
                    <Obj N="__ClassMetadata" RefId="2">
                        <TN RefId="2">
                            <T>System.Collections.ArrayList</T>
                            <T>System.Object</T>
                        </TN>
                        <LST>
                            <Obj RefId="3">
                                <MS>
                                    <S N="ClassName">MSFT_ServerManagerServerComponentDescriptor</S>
                                    <S N="Namespace">ROOT/Microsoft/Windows/ServerManager</S>
                                    <S N="ServerName">SOME-COMPUTER-NAME</S>
                                    <I32 N="Hash">1884695400</I32>
                                    <S N="MiXml">&lt;CLASS NAME="MSFT_ServerManagerServerComponentDescriptor"&gt;&lt;QUALIFIER NAME="dynamic" TYPE="boolean"&gt;&lt;VALUE&gt;true&lt;/VALUE&gt;&lt;/QUALIFIER&gt;&lt;QUALIFIER NAME="locale" TYPE="sint32" TOSUBCLASS="false"&gt;&lt;VALUE&gt;1033&lt;/VALUE&gt;&lt;/QUALIFIER&gt;&lt;QUALIFIER NAME="provider" TYPE="string"&gt;&lt;VALUE&gt;deploymentprovider&lt;/VALUE&gt;&lt;/QUALIFIER&gt;&lt;/CLASS&gt;</S>
                                </MS>
                            </Obj>
                            <Obj RefId="4">
                                <MS>
                                    <S N="ClassName">ServerComponent_Web_Http_Tracing</S>
                                    <S N="Namespace">ROOT/Microsoft/Windows/ServerManager</S>
                                    <S N="ServerName">SOME-COMPUTER-NAME</S>
                                    <I32 N="Hash">1983160024</I32>
                                    <S N="MiXml">&lt;CLASS NAME="ServerComponent_Web_Http_Tracing" SUPERCLASS="MSFT_ServerManagerServerComponentDescriptor"&gt;&lt;QUALIFIER NAME="dynamic" TYPE="boolean"&gt;&lt;VALUE&gt;true&lt;/VALUE&gt;&lt;/QUALIFIER&gt;&lt;QUALIFIER NAME="provider" TYPE="string"&gt;&lt;VALUE&gt;deploymentprovider&lt;/VALUE&gt;&lt;/QUALIFIER&gt;&lt;QUALIFIER NAME="ClassVersion" TYPE="string"&gt;&lt;VALUE&gt;0.0.0&lt;/VALUE&gt;&lt;/QUALIFIER&gt;&lt;QUALIFIER NAME="DisplayName" TYPE="string" TRANSLATABLE="true"&gt;&lt;VALUE&gt;Web-Http-Tracing&lt;/VALUE&gt;&lt;/QUALIFIER&gt;&lt;/CLASS&gt;</S>
                                </MS>
                            </Obj>
                        </LST>
                    </Obj>
                </MS>
            </Obj>
        </LST>
    </Obj>
</Objs>

We are working through as many of the 7 Ways to 0x800f0922 Windows 10 Error as are applicable. Other suggestions welcome.

LATER

C:\bin>sfc /scannow

Beginning system scan.  This process will take some time.

Beginning verification phase of system scan.
Verification 100% complete.

Windows Resource Protection found corrupt files but was unable to fix some
of them. Details are included in the CBS.Log windir\Logs\CBS\CBS.log. For
example C:\Windows\Logs\CBS\CBS.log. Note that logging is currently not
supported in offline servicing scenarios.

The CBS.log file is 5.3MB. Might try DISM next.

C:\bin>DISM.exe /Online /Cleanup-image /Scanhealth

Deployment Image Servicing and Management tool
Version: 6.3.9600.17031

Image Version: 6.3.9600.17031

[==========================100.0%==========================]
No component store corruption detected.
The operation completed successfully.

C:\bin> DISM.exe /Online /Cleanup-image /Restorehealth

Deployment Image Servicing and Management tool
Version: 6.3.9600.17031

Image Version: 6.3.9600.17031

[==========================100.0%==========================]
The restore operation completed successfully. The component store corruption was repaired.
The operation completed successfully.

LATER STILL

No. Still not installing. Ideas anyone?


Solution

  • Being able to call in Support, we spent a few days generating and sending logs to a Microsoft support engineer, resulting in the following instructions:

    ... please create the folder C:\inetpub\logs\FailedReqLogFiles on your problematic machine. 
    Then please right click this folder, choose Properties, then under Security tab, 
    assign the following permissions:
    
    System - Full Control
    Administrators - Full Control 
    IIS_IUSRS - List folder/read data, Create files/ write data, create folders/ append data, write attributes, write extend attributes, delete subfolders and files and delete.
    

    This was sufficient to enable installation of the Tracing role. In the process, one particularly difficult and troubling 500 issue disappeared. So after all the hoo-hah and to-ing and fro-ing we have not had to use the FRT module after all.