<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.iis.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:cs="http://blogs.iis.net/"><channel><title>Richard Marr&amp;#39;s Blog</title><link>http://blogs.iis.net/richma/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Debug Build: 20510.895)</generator><item><title>Winhttp Tracing Options for Troubleshooting with Application Request Routing</title><link>http://blogs.iis.net/richma/archive/2012/08/24/winhttp-tracing-options-for-troubleshooting-with-application-request-routing.aspx</link><pubDate>Fri, 24 Aug 2012 22:59:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:4993979</guid><dc:creator>richma</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/richma/rsscomments.aspx?PostID=4993979</wfw:commentRss><comments>http://blogs.iis.net/richma/archive/2012/08/24/winhttp-tracing-options-for-troubleshooting-with-application-request-routing.aspx#comments</comments><description>&lt;p&gt;In my earlier blog&amp;nbsp; “ &lt;a href="http://blogs.iis.net/richma/archive/2010/07/03/502-3-bad-gateway-the-operation-timed-out-with-iis-application-request-routing-arr.aspx"&gt;502.3 Bad Gateway “The operation timed out” with IIS Application Request Routing(ARR)&lt;/a&gt; “&amp;nbsp;&amp;nbsp;&amp;nbsp; I referenced links for gathering Winhttp tracing for troubleshooting 502.3 issues.&lt;/p&gt;
&lt;p&gt;Since&amp;nbsp; there are multiple ways to gather this in the Windows 2008 and 2008R2 I thought this might be helpful to outline this for the different platforms and how to gather this for fellow ARR troubleshooters. &lt;/p&gt;
&lt;h1&gt;Windows 2008&lt;/h1&gt;
&lt;p&gt;1. Start the Tracing . From a command prompt run the following command:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;netsh winhttp set tracing trace-file-prefix=&amp;quot;C:\TEMP\WinHttpLog&amp;quot; level=verbose format=hex state=enabled max-trace-file-size=1048576000&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;2.Recycle the IIS Application Pool.&lt;/p&gt;
&lt;p&gt;3. Reproduce the issue.&lt;/p&gt;
&lt;p&gt;4. Stop the Tracing. From a command prompt run the following command:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;netsh winhttp set tracing state=disabled&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;5. Review the trace with Notepad or any Text editor.&lt;/p&gt;
&lt;p&gt;NOTE: The Identity of the&amp;nbsp; IIS application pool will require write access to the&amp;nbsp; log location&amp;nbsp; c:\Temp in this example:&lt;/p&gt;
&lt;p&gt;This type of tracing is process bitness specific, so if you are looking at a 32 bit process running from 64 bit OS, you need to use: c:\windows\syswow64\cmd.exe, rather than using the regular 64 bit cmd.exe (start a run a cmd.exe)&lt;/p&gt;
&lt;h1&gt;Windows 2008 R2&lt;/h1&gt;
&lt;h3&gt;Method 1&lt;/h3&gt;
&lt;p&gt;This method will output the Winhttp API calls , but not raw data for network communication. From a command prompt run the following command:&lt;/p&gt;
&lt;p&gt;1. Start the tracing&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;netsh winhttp set tracing trace-file-prefix=&amp;quot;C:\Temp\Test3&amp;quot; level=verbose format=hex&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;netsh winhttp set tracing output=file max-trace-file-size=512000 state=enabled&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;2.Recycle the IIS Application Pool.&lt;/p&gt;
&lt;p&gt;3. Reproduce the issue.&lt;/p&gt;
&lt;p&gt;4. Stop the Tracing. From a command prompt run the following command:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;netsh winhttp set tracing state=disabled&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;5. Review the trace with Notepad or any Text editor.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: The Identity of the IIS application pool will require write access to the log location c:\Temp in this example:&lt;/p&gt;
&lt;p&gt;This type of tracing is process bitness specific, so if you are looking at a 32 bit process running from 64 bit OS, you need to use: c:\windows\syswow64\cmd.exe, rather than using the regular 64 bit cmd.exe (start a run a cmd.exe)&lt;/p&gt;
&lt;h3&gt;Method 2&lt;/h3&gt;
&lt;p&gt;To get the raw data communication at network layer and the Winhttp&amp;nbsp; Api calls.&lt;/p&gt;
&lt;p&gt;1. Start the tracing: From a command prompt run the following command:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;netsh trace start scenario=InternetClient capture=yes &lt;strong&gt;report=yes&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Note the etl file location for example:&lt;/p&gt;
&lt;p&gt;&amp;nbsp; Trace File:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C:\Users\&amp;lt;your user name&amp;gt;\AppData\Local\Temp\NetTraces\NetTrace.etl&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;2.Recycle the IIS Application Pool.&lt;/p&gt;
&lt;p&gt;3. Reproduce the issue.&lt;/p&gt;
&lt;p&gt;4. Stop the tracing: From a command prompt run the following command:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;netsh trace stop&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;5. Read the Trace by opening it in Netmon 3.4.&amp;nbsp; &lt;/p&gt;
&lt;h3&gt;Method 3&lt;/h3&gt;
&lt;p&gt;The ETW format for winhttp API is available on windows 2008 R2 and win7 via the Event Viewer&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp; Open event viewer. Go to “View” menu --&amp;gt; make sure “Show Analytic and debug logs” is checked.&lt;/p&gt;
&lt;p&gt;2. Open “Applications and Services logs” -- &amp;gt; Open “Microsoft” -- &amp;gt; Open “Windows –&amp;gt; Winhttp –&amp;gt; Diagnostic.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/richma/clip_image002_50AD7A2B.jpg"&gt;&lt;img title="clip_image002" style="BORDER-LEFT-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;BACKGROUND-IMAGE:none;BORDER-BOTTOM-WIDTH:0px;FLOAT:none;PADDING-TOP:0px;PADDING-LEFT:0px;MARGIN-LEFT:auto;DISPLAY:block;PADDING-RIGHT:0px;BORDER-TOP-WIDTH:0px;MARGIN-RIGHT:auto;" border="0" alt="clip_image002" src="http://blogs.iis.net/blogs/richma/clip_image002_thumb_3DF88074.jpg" width="413" height="164" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;3. Highlight “Diagnostic” under Winhttp tree and right click mouse, then click “enable log”. &lt;/p&gt;
&lt;p&gt;4.&amp;nbsp; Reproduce the issue then you can review the logs.&lt;/p&gt;
&lt;h2&gt;References&lt;/h2&gt;
&lt;p&gt;Netsh Commands for Network Trace in Windows Server 2008 R2 and Windows 7&lt;/p&gt;
&lt;p&gt;&lt;a title="http://technet.microsoft.com/en-us/library/dd878517(v=WS.10).aspx" href="http://technet.microsoft.com/en-us/library/dd878517(v=WS.10).aspx"&gt;http://technet.microsoft.com/en-us/library/dd878517(v=WS.10).aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=4993979" width="1" height="1"&gt;</description></item><item><title>Overview of Application Request Routing’s Health Check features</title><link>http://blogs.iis.net/richma/archive/2010/12/14/application-request-routing-health-check-features.aspx</link><pubDate>Tue, 14 Dec 2010 05:14:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:4209578</guid><dc:creator>richma</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/richma/rsscomments.aspx?PostID=4209578</wfw:commentRss><comments>http://blogs.iis.net/richma/archive/2010/12/14/application-request-routing-health-check-features.aspx#comments</comments><description>&lt;P&gt;I had a recent question about the ARR health check features which resulted&amp;nbsp; in this overview. Hopefully this is helpful to those of you setting up new ARR deployments.&lt;/P&gt;
&lt;H3&gt;&lt;U&gt;&lt;FONT style="FONT-WEIGHT: bold"&gt;URL TEST Feature&lt;/FONT&gt;&lt;/U&gt;&lt;/H3&gt;
&lt;P align=left&gt;The URL Test feature tests against a specified URL for the following conditions. If any of the conditions fail the server that failed the test will be taken offline.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;A response was received within the configured timeout period &lt;/LI&gt;
&lt;LI&gt;The HTTP status meets the configured acceptable status codes &lt;/LI&gt;
&lt;LI&gt;The body of the response contains the specified text configured in the response match. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;If the URL is set to the FQDN of the ARR server then the tests will be performed against all servers configured in the farm.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Servers can be either brought online manually or when the URL test determines the server is healthy again after then next successful test run.&lt;/P&gt;
&lt;P&gt;As this feature is limited to only one URL it is recommended to create a smoke test page that is a representation of overall health of the server.&amp;nbsp;&amp;nbsp; ARR can be further configured to look for specific words in the response entity body, so that the results of the smoke test can be taken into the consideration for determining the health.&lt;/P&gt;
&lt;P&gt;The feature is disabled if there is no URL present in the dialog.&lt;/P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=2 width=892&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=133&gt;
&lt;H4&gt;&lt;STRONG&gt;UI Settings&lt;/STRONG&gt;&lt;/H4&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=242&gt;
&lt;H4&gt;&lt;STRONG&gt;Configuration Attribute &lt;/STRONG&gt;&lt;/H4&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=515&gt;&lt;STRONG&gt;&lt;STRONG&gt;&lt;STRONG&gt;&lt;STRONG&gt;
&lt;H4&gt;&lt;STRONG&gt;Description&lt;/STRONG&gt;&lt;/H4&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=133&gt;&lt;STRONG&gt;URL&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=242&gt;&amp;lt;attribute name="url" type="string"/&amp;gt;&lt;/TD&gt;
&lt;TD vAlign=top width=515&gt;URL of content you want to perform the check against. Since the test is designed to read the contents of the response,&amp;nbsp; a text file is sufficient. i.e. &lt;A href="http://(server/" mce_href="http://(server/"&gt;http://(server/&lt;/A&gt; name or FQDN of ARR server)/healthCheck.txt&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=133&gt;&lt;STRONG&gt;Interval&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=242&gt;&amp;lt;attribute name="interval" type="timeSpan" defaultValue="00:00:30" validationType="timeSpanRange" validationParameter="0,86400,1"/&amp;gt; &lt;BR&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=515&gt;How often the test is performed&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=133&gt;&lt;STRONG&gt;Time-out(seconds)&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=242&gt;&amp;lt;attribute name="timeout" type="timeSpan" defaultValue="00:00:30" validationType="timeSpanRange" validationParameter="1,86400,1"/&amp;gt;&lt;/TD&gt;
&lt;TD vAlign=top width=515&gt;Configurable timeout period to receive a valid response.&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=133&gt;&lt;STRONG&gt;Acceptable status codes&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=242&gt;&amp;lt;attribute name="statusCodeMatch" type="string" defaultValue="200-399"/&amp;gt; &lt;/TD&gt;
&lt;TD vAlign=top width=515&gt;Range of acceptable HTTP status codes that signify success.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=133&gt;&lt;STRONG&gt;Response Match&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=242&gt;&amp;lt;attribute name=”responseMatch” type=”string” caseSensitive=”true”/&amp;gt; &lt;BR&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=515&gt;String that will be contained in the body of the successfully response. If the string “Healthy” was entered here the response body must contain this string. &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;H3&gt;&lt;U&gt;&lt;FONT style="FONT-WEIGHT: bold"&gt;Live Traffic Test (enabled by default)&lt;/FONT&gt;&lt;/U&gt;&lt;/H3&gt;
&lt;P&gt;Will mark a server unhealthy if the following conditions are met.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;If the HTTP response matches the configured failure code range as configured by liveTrafficFailureCodes &lt;/LI&gt;
&lt;LI&gt;And If there are X # of failures as configured by maxLiveTrafficFailures &lt;/LI&gt;
&lt;LI&gt;And if the # of failures occur during the configured time per liveTrafficFailurePeriod. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;To disable the feature set the Failover period to 0.&lt;/P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=2 width=892&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=133&gt;
&lt;H3&gt;&lt;STRONG&gt;UI Settings&lt;/STRONG&gt;&lt;/H3&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=242&gt;
&lt;H3&gt;&lt;STRONG&gt;Configuration Attribute &lt;/STRONG&gt;&lt;/H3&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=515&gt;&lt;STRONG&gt;&lt;STRONG&gt;
&lt;H3&gt;&lt;STRONG&gt;Description&lt;/STRONG&gt;&lt;/H3&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=133&gt;&lt;STRONG&gt;Failure Codes&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=242&gt;&amp;lt;attribute name="liveTrafficFailureCodes" type="string" defaultValue="500-"/&amp;gt; &lt;BR&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=515&gt;Range of Http status codes that signify failure.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=133&gt;&lt;STRONG&gt;Maximum Live Traffic Failures:&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=242&gt;&amp;lt;attribute name="maxLiveTrafficFailures" type="uint" defaultValue="10" validationType="integerRange" validationParameter="1,4294967295"/&amp;gt; &lt;BR&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=515&gt;
&lt;P&gt;Specifies the maximum number of failures that are allowed during the failover period.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=133&gt;&lt;STRONG&gt;Failover period (seconds)&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=242&gt;&amp;lt;attribute name="liveTrafficFailurePeriod" type="timeSpan" defaultValue="00:00:00" validationType="timeSpanRange" validationParameter="0,86400,1"/&amp;gt;&lt;/TD&gt;
&lt;TD vAlign=top width=515&gt;
&lt;P&gt;Specifies the failover period in seconds. To disable the Live Traffic test, set this value to 0.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=133&gt;&lt;STRONG&gt;Minimum Servers&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=242&gt;
&lt;P&gt;&amp;lt;attribute name="minServers" type="uint" defaultValue="0"/&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=515&gt;
&lt;P&gt;Set as a percentage of Healthy servers. When the number of healthy servers drops below this number the following takes place. &lt;/P&gt;
&lt;P&gt;An Event is raised and logged to the event viewer&lt;/P&gt;
&lt;P&gt;Requests are route to all servers regardless of their status except for servers that were taken offline manually.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=4&gt;What happens if all Servers are offline? &lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The user will receive the following error in the browser:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.iis.net/blogs/richma/image_2BFF7B1C.png" mce_href="http://blogs.iis.net/blogs/richma/image_2BFF7B1C.png"&gt;&lt;IMG style="BACKGROUND-IMAGE: none; BORDER-RIGHT-WIDTH: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px" title=image border=0 alt=image src="http://blogs.iis.net/blogs/richma/image_thumb_643DF234.png" width=985 height=90 mce_src="http://blogs.iis.net/blogs/richma/image_thumb_643DF234.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;A href="http://learn.iis.net/page.aspx/488/using-failed-request-tracing-rules-to-troubleshoot-application-request-routing-arr/" mce_href="http://learn.iis.net/page.aspx/488/using-failed-request-tracing-rules-to-troubleshoot-application-request-routing-arr/"&gt;Failed Request Tracing&lt;/A&gt; logs will log the error and reason below.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.iis.net/blogs/richma/image_2E58FD1A.png" mce_href="http://blogs.iis.net/blogs/richma/image_2E58FD1A.png"&gt;&lt;IMG style="BACKGROUND-IMAGE: none; BORDER-RIGHT-WIDTH: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px" title=image border=0 alt=image src="http://blogs.iis.net/blogs/richma/image_thumb_349FD3A8.png" width=999 height=140 mce_src="http://blogs.iis.net/blogs/richma/image_thumb_349FD3A8.png"&gt;&lt;/A&gt; &lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;U&gt;&lt;FONT style="FONT-WEIGHT: bold"&gt;Summary&lt;/FONT&gt;&lt;/U&gt;&lt;/H3&gt;
&lt;P&gt;When setting up your environment its important to note that the &lt;STRONG&gt;URL Test&lt;/STRONG&gt;&amp;nbsp;feature can be used to both mark a server to unhealthy as well as healthy ,while&amp;nbsp; the &lt;STRONG&gt;Live Traffic&lt;/STRONG&gt; test is only used to mark a server as unhealthy. &lt;/P&gt;
&lt;P&gt;The reason for this is that the URL test has no user impact and there is no risk to the user experience. If you experience transient outages where you want to recover&amp;nbsp; via health checking features it would be recommended to use a combination of both the Live Traffic and the URL test. If you want to failed servers to stay offline until some administrator action then just use the &lt;STRONG&gt;Live Traffic&lt;/STRONG&gt; test.&lt;/P&gt;
&lt;H3&gt;&lt;U&gt;&lt;FONT style="FONT-WEIGHT: bold"&gt;References&lt;/FONT&gt;&lt;/U&gt;&lt;/H3&gt;
&lt;P&gt;&lt;A href="http://technet.microsoft.com/en-us/library/dd443513(WS.10).aspx" mce_href="http://technet.microsoft.com/en-us/library/dd443513(WS.10).aspx"&gt;ARR Health Test Page&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://technet.microsoft.com/en-us/library/dd443512(WS.10).aspx" mce_href="http://technet.microsoft.com/en-us/library/dd443512(WS.10).aspx"&gt;Verify URL Test Dialog Box&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://technet.microsoft.com/en-us/library/dd443506(WS.10).aspx" mce_href="http://technet.microsoft.com/en-us/library/dd443506(WS.10).aspx"&gt;Monitoring and Management Page&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=4209578" width="1" height="1"&gt;</description></item><item><title>502.3 Bad Gateway “The operation timed out” with IIS Application Request Routing(ARR)</title><link>http://blogs.iis.net/richma/archive/2010/07/03/502-3-bad-gateway-the-operation-timed-out-with-iis-application-request-routing-arr.aspx</link><pubDate>Sat, 03 Jul 2010 16:38:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3956947</guid><dc:creator>richma</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/richma/rsscomments.aspx?PostID=3956947</wfw:commentRss><comments>http://blogs.iis.net/richma/archive/2010/07/03/502-3-bad-gateway-the-operation-timed-out-with-iis-application-request-routing-arr.aspx#comments</comments><description>&lt;P&gt;When working with ARR deployments one of the errors you might see is&amp;nbsp; 502.3&amp;nbsp; Bad Gateway. The 502.3 means while acting as a proxy ARR was unable to complete the request to the upstream server and subsequently send a response back to the client. This can happen for multiple reasons including , failure to connect to the server , no response from the server, or server took too long to respond (time out).&amp;nbsp; &lt;/P&gt;
&lt;P&gt;For the purposes of this post we are going to look at a timeout error and the data that can be gathered to help isolate the cause.&lt;/P&gt;
&lt;P&gt;If you are looking at this post then you probably have already seen this error or something similar. This is shown in the browser when &lt;A href="http://learn.iis.net/page.aspx/267/how-to-use-http-detailed-errors-in-iis-70/" target=_blank mce_href="http://learn.iis.net/page.aspx/267/how-to-use-http-detailed-errors-in-iis-70/"&gt;detailed errors&lt;/A&gt; are enabled in IIS.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.iis.net/blogs/richma/image_60C5706C.png" mce_href="http://blogs.iis.net/blogs/richma/image_60C5706C.png"&gt;&lt;IMG title=image style="BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px" border=0 alt=image src="http://blogs.iis.net/blogs/richma/image_thumb_0D01F751.png" width=1028 height=292 mce_src="http://blogs.iis.net/blogs/richma/image_thumb_0D01F751.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Another way to identify the source of the 502.3&amp;nbsp; is with&amp;nbsp; &lt;A href="http://learn.iis.net/page.aspx/266/troubleshooting-failed-requests-using-tracing-in-iis-7/" target=_blank mce_href="http://learn.iis.net/page.aspx/266/troubleshooting-failed-requests-using-tracing-in-iis-7/"&gt;Failed Request Tracing&lt;/A&gt;&amp;nbsp;&amp;nbsp; logs in IIS configured to capture Status code 502. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.iis.net/blogs/richma/image_3866184B.png" mce_href="http://blogs.iis.net/blogs/richma/image_3866184B.png"&gt;&lt;IMG title=image style="BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px" border=0 alt=image src="http://blogs.iis.net/blogs/richma/image_thumb_279E6D9D.png" width=1028 height=86 mce_src="http://blogs.iis.net/blogs/richma/image_thumb_279E6D9D.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;From the message the key details are the &lt;STRONG&gt;ErrorCode&lt;/STRONG&gt;&amp;nbsp; which you can use to map to to the Winhttp error message, which in this case&amp;nbsp; is &lt;STRONG&gt;ERROR_WINHTTP_TIMEOUT&lt;/STRONG&gt; ( &lt;A href="http://msdn.microsoft.com/en-us/library/aa383770(VS.85).aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/aa383770(VS.85).aspx"&gt;Reference WinHttp Error Codes&lt;/A&gt;). You will also see in the next line that this is translated to&amp;nbsp; &lt;STRONG&gt;“The operation timed out”&lt;/STRONG&gt;.&amp;nbsp; Note that both the 0x80072ee2 and 2147954402 map to the same error&amp;nbsp; ERROR_WINHTTP_TIMEOUT.&lt;/P&gt;
&lt;P&gt;Now that we know its a timeout we need to determine what type of timeout occurred. Here is a list of the timeouts that can occur in Winhttp ( which if you haven't guessed already is what ARR uses to proxy requests)&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;ResolveTimeout : &lt;/EM&gt;This occurs if name resolution takes longer than the specified timeout period. &lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;ConnectTimeout&lt;/EM&gt; : This occurs if it takes longer than the specified timeout period to connect to the server after the name resolved.&amp;nbsp; &lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;SendTimeout&lt;/EM&gt;&amp;nbsp; :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If sending a request takes longer than this time-out value, the send is canceled. &lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;ReceiveTimeout&lt;/EM&gt; :&amp;nbsp; If a response takes longer than this time-out value, the request is canceled. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;To identify what type of timeout we can use Winhttp’s built in logging,These can be enabled from the command line on the ARR server using &lt;A href="http://technet.microsoft.com/en-us/library/cc731131(WS.10).aspx" target=_blank mce_href="http://technet.microsoft.com/en-us/library/cc731131(WS.10).aspx"&gt;NETSH&lt;/A&gt;.&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Winhttp Traces:&lt;/STRONG&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Following&amp;nbsp; the example below you can search your log for &lt;STRONG&gt;WinHttpOpenRequest&lt;/STRONG&gt; to find your request. The calls to &lt;STRONG&gt;WinHttpSetTimeouts&lt;/STRONG&gt;&amp;nbsp; are setting the 4 timeout values&amp;nbsp; based on your ARR time settings found in the &lt;A href="http://technet.microsoft.com/en-us/library/dd443526(WS.10).aspx" target=_blank mce_href="http://technet.microsoft.com/en-us/library/dd443526(WS.10).aspx"&gt;Proxy Configuration page&lt;/A&gt; of your ARR Server Farm or in the &lt;A href="http://technet.microsoft.com/en-us/library/dd443533(WS.10).aspx" target=_blank mce_href="http://technet.microsoft.com/en-us/library/dd443533(WS.10).aspx"&gt;Server Proxy&lt;/A&gt; settings. Next we find &lt;STRONG&gt;WinHttpSendRequest&lt;/STRONG&gt; then &lt;STRONG&gt;WinHttpReceiveResponse&lt;/STRONG&gt; , so we know we are now in the receive stage. Finally we see that the error in is in RecvResponse so we know this is a ReceiveTimeout. For a different failure such as &lt;EM&gt;ResolveTimeout&lt;/EM&gt;&amp;nbsp; we would not see the log make it to &lt;STRONG&gt;WinHttpReceiveResponse&lt;/STRONG&gt; and the failure would be logged earlier.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;DIV align=left&gt;&lt;PRE class=csharpcode&gt;10:23:45.100 ::&lt;STRONG&gt;WinHttpOpenRequest&lt;/STRONG&gt;(0x35a970, &lt;SPAN class=str&gt;"GET"&lt;/SPAN&gt;, &lt;SPAN class=str&gt;"/sleep/default.aspx"&lt;/SPAN&gt;, &lt;SPAN class=str&gt;"HTTP/1.0"&lt;/SPAN&gt;, &lt;SPAN class=str&gt;""&lt;/SPAN&gt;, 0x0, 0x00000080)
 …………
10:23:45.100 ::&lt;STRONG&gt;WinHttpSetTimeouts&lt;/STRONG&gt;(0x2e42d80, 30000, 30000, 30000, 30000)
10:23:45.100 ::WinHttpSetTimeouts() returning TRUE
………… &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;10:23:45.100 ::&lt;STRONG&gt;WinHttpSendRequest&lt;/STRONG&gt;(0x2e42d80, &lt;SPAN class=str&gt;"Accept: */*\r\nAccept-Encoding: gzip, deflate\r\nAccept-Language: en-CA\r\nHost: contoso.com"&lt;/SPAN&gt;, 479, 0x0, 0, 0, 24794c0)
………… &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;10:24:15.397 ::Completing WinHttpSendRequest() with success; Request Handle = 02E42D80, Context = 024794C0, Buffer = 00000000 (0x0), Buffer Length = 0
10:24:15.397 ::&lt;STRONG&gt;WinHttpReceiveResponse&lt;/STRONG&gt;(0x2e42d80, 0x0)
………… 
10:24:15.397 ::sys-recver failed to receive headers; error = ? (1460)
10:24:15.397 ::ERROR_WINHTTP_FROM_WIN32 mapped (?) 1460 to (&lt;STRONG&gt;ERROR_WINHTTP_TIMEOUT&lt;/STRONG&gt;) 12002
10:24:15.397 ::&lt;STRONG&gt;sys-recver returning ERROR_WINHTTP_TIMEOUT (12002) from RecvResponse()&lt;/STRONG&gt;
10:24:15.397 ::sys-req completes recv-headers inline (sync); error = &lt;STRONG&gt;ERROR_WINHTTP_TIMEOUT (12002)&lt;/STRONG&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Now that we know this is receive timeout we can look at the content server and see how long the request took.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV align=left&gt;&amp;nbsp;&lt;STRONG&gt;IIS logs on the&amp;nbsp; Content Server:&lt;/STRONG&gt;&amp;nbsp; &lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P align=left&gt;Examine the IIS logs on the&amp;nbsp; content server and check the &lt;STRONG&gt;sc-status&lt;/STRONG&gt; and &lt;STRONG&gt;sc-win32-status&lt;/STRONG&gt; and &lt;STRONG&gt;time-taken&lt;/STRONG&gt; fields.&amp;nbsp; This will give you an idea of whether the request processed successfully ( sc-status = 200)&amp;nbsp; and the time-taken to see if this exceeds your ARR timeout and if this is the expected execution time for your web page . You can determine from this whether you need to troubleshoot a long running application or simply increase the ARR timeout settings. Checking the Win32 field for errors such as 1236 (ERROR_CONNECTION_ABORTED) or&amp;nbsp; 64 (ERROR_NETNAME_DELETED) indicate that something happened on the network layer such as&amp;nbsp; a connection reset.&amp;nbsp; &lt;/P&gt;
&lt;P align=left&gt;Using our example the IIS logs here show that the Request&amp;nbsp; took ~35 seconds (time-taken=35615) , the request was processed successfully on the server (sc-status=200) , but&amp;nbsp; there was a problem sending the request (sc-win32-status=64) which means the connection was gone when the content server tried to send the request.&amp;nbsp; This was because the client (ARR) has already timed-out and closed the TCP connection.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;&lt;PRE class=csharpcode&gt;#Software: Microsoft Internet Information Services 7.0
#Version: 1.0
#Date: 2010-06-23 20:11:33
#Fields: &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;date time            cs-method cs-uri-stem         s-port  &lt;STRONG&gt;sc-status&lt;/STRONG&gt; sc-substatus &lt;STRONG&gt;sc-win32-status&lt;/STRONG&gt; &lt;STRONG&gt;time-taken
&lt;/STRONG&gt;2010-06-23 20:11:33  GET       /sleep/&lt;SPAN class=kwrd&gt;default&lt;/SPAN&gt;.aspx 80      200       0            64               35615&lt;/PRE&gt;
&lt;STYLE type=text/css&gt;.csharpcode {
	FONT-SIZE: small; FONT-FAMILY: consolas, "Courier New", courier, monospace; COLOR: black; BACKGROUND-COLOR: #ffffff
}
.csharpcode PRE {
	FONT-SIZE: small; FONT-FAMILY: consolas, "Courier New", courier, monospace; COLOR: black; BACKGROUND-COLOR: #ffffff
}
.csharpcode PRE {
	MARGIN: 0em
}
.csharpcode .rem {
	COLOR: #008000
}
.csharpcode .kwrd {
	COLOR: #0000ff
}
.csharpcode .str {
	COLOR: #006080
}
.csharpcode .op {
	COLOR: #0000c0
}
.csharpcode .preproc {
	COLOR: #cc6633
}
.csharpcode .asp {
	BACKGROUND-COLOR: #ffff00
}
.csharpcode .html {
	COLOR: #800000
}
.csharpcode .attr {
	COLOR: #ff0000
}
.csharpcode .alt {
	MARGIN: 0em; WIDTH: 100%; BACKGROUND-COLOR: #f4f4f4
}
.csharpcode .lnum {
	COLOR: #606060
}
&lt;/STYLE&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P align=left&gt;&lt;STRONG&gt;Summary&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;So in this case we can see that the request took &amp;gt;35 seconds&amp;nbsp; which is longer than the default timeout in ARR. When this occurs ARR&amp;nbsp; ( or Winhttp underlying ARR)&amp;nbsp; will close the connection to the content server which is what cause the Win32 error 64. &lt;/P&gt;
&lt;P&gt;Now its up to you to determine whether its acceptable that your page is running for 35 seconds&amp;nbsp; and you just need to increase time outs in ARR.&lt;/P&gt;
&lt;P&gt;Since the application issues are beyond the scope of this blog I’ll leave you with two command lines for setting ARR&amp;nbsp; timeouts for either a&amp;nbsp; Server Proxy&amp;nbsp; configuration or Server Farms.&lt;/P&gt;
&lt;P&gt;Server Proxy : appcmd.exe set config&amp;nbsp; -section:system.webServer/proxy /timeout:"00:00:45"&amp;nbsp; /commit:apphost &lt;/P&gt;
&lt;P&gt;Server Farm :&amp;nbsp; appcmd.exe set config&amp;nbsp; -section:webFarms /[name='ArrFarm'].applicationRequestRouting.protocol.timeout:"00:00:45"&amp;nbsp; /commit:apphost&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;References&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/aa384116(VS.85).aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/aa384116(VS.85).aspx"&gt;WinHttpSetTimeouts Function&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://technet.microsoft.com/en-us/library/cc731131(WS.10).aspx" target=_blank mce_href="http://technet.microsoft.com/en-us/library/cc731131(WS.10).aspx"&gt;Netsh Commands for Windows Hypertext Transfer Protocol (WINHTTP)&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://learn.iis.net/page.aspx/266/troubleshooting-failed-requests-using-tracing-in-iis-7/" target=_blank mce_href="http://learn.iis.net/page.aspx/266/troubleshooting-failed-requests-using-tracing-in-iis-7/"&gt;Failed Request Tracing in IIS (FREB)&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;UPDATE : New Post for &lt;A href="http://blogs.iis.net/richma/archive/2012/08/24/winhttp-tracing-options-for-troubleshooting-with-application-request-routing.aspx" mce_href="http://blogs.iis.net/richma/archive/2012/08/24/winhttp-tracing-options-for-troubleshooting-with-application-request-routing.aspx"&gt;Winhttp Tracing Methods&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title=http://msdn.microsoft.com/en-us/library/cc307237(VS.85).aspx href="http://msdn.microsoft.com/en-us/library/cc307237(VS.85).aspx" mce_href="http://msdn.microsoft.com/en-us/library/cc307237(VS.85).aspx"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://learn.iis.net/page.aspx/740/application-request-routing-module/" target=_blank mce_href="http://learn.iis.net/page.aspx/740/application-request-routing-module/"&gt;ARR on IIS.NET&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=3956947" width="1" height="1"&gt;</description></item><item><title>Deleting IIS Web Sites, Applications and their Content with Web Deploy</title><link>http://blogs.iis.net/richma/archive/2010/07/03/deleting-iis-web-sites-applications-and-their-content-with-web-deploy.aspx</link><pubDate>Sat, 03 Jul 2010 16:06:42 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3956925</guid><dc:creator>richma</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/richma/rsscomments.aspx?PostID=3956925</wfw:commentRss><comments>http://blogs.iis.net/richma/archive/2010/07/03/deleting-iis-web-sites-applications-and-their-content-with-web-deploy.aspx#comments</comments><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;While supporting customers on the &lt;a href="http://forums.iis.net/1155.aspx" target="_blank"&gt;Web Platform Installer forums&lt;/a&gt;, a frequent question is “How do&amp;#160; I uninstall or remove &lt;a href="http://www.microsoft.com/web/gallery/" target="_blank"&gt;Web App Gallery&lt;/a&gt; applications?”. Since there is no MSI or installer package these are not added to the Windows Programs menu so how can we achieve this ?&lt;/p&gt;  &lt;p&gt;The answer comes in the same tool used to install the package, the Web Deployment Tool ( Web Deploy).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;When installed on IIS 7.0 or later Web Deploy adds a context menu item to IIS manager called Deploy.&lt;/p&gt;  &lt;p&gt;There are multiple actions available here one of which is the &lt;strong&gt;Delete&lt;/strong&gt; action. There are two options depending on what node you have selected in IIS manager:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Web site&lt;/strong&gt; :&amp;#160;&amp;#160; Deploy &amp;gt;&amp;gt; Delete Web Site and Content &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Application:&lt;/strong&gt; Deploy &amp;gt;&amp;gt; Delete Application and Content &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/richma/deleteDeploy_175EB98A.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="deleteDeploy" border="0" alt="deleteDeploy" src="http://blogs.iis.net/blogs/richma/deleteDeploy_thumb_168653A0.jpg" width="576" height="451" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt; Once you have made the selection you will be warned that there is no recovery so make sure you &lt;strong&gt;BACK UP&lt;/strong&gt; if you want to restore the information at another time. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/richma/deleteDeploy_Confirm_1873A2A9.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="deleteDeploy_Confirm" border="0" alt="deleteDeploy_Confirm" src="http://blogs.iis.net/blogs/richma/deleteDeploy_Confirm_thumb_73E21524.jpg" width="444" height="166" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;And that’s all there is to it, the web site / application and associated content are now deleted.&amp;#160; I hope you find this helpful!&lt;/p&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=3956925" width="1" height="1"&gt;</description></item><item><title>Missing Failed Request Tracing (FREB) trace Areas ?</title><link>http://blogs.iis.net/richma/archive/2010/05/26/missing-failed-request-tracing-freb-trace-areas.aspx</link><pubDate>Wed, 26 May 2010 15:24:33 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3874812</guid><dc:creator>richma</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/richma/rsscomments.aspx?PostID=3874812</wfw:commentRss><comments>http://blogs.iis.net/richma/archive/2010/05/26/missing-failed-request-tracing-freb-trace-areas.aspx#comments</comments><description>&lt;p&gt;I was recently working with a colleague to troubleshoot an issue using &lt;strong&gt;Application Request Routing (ARR)&lt;/strong&gt; and wanted to use the trace areas provided by ARR to see the events this logged.&lt;/p&gt;  &lt;p&gt;However,&amp;#160; when we checked the &lt;a href="http://learn.iis.net/page.aspx/266/troubleshooting-failed-requests-using-tracing-in-iis-7/" target="_blank"&gt;FREB&lt;/a&gt; trace nothing for ARR was logged. How could this be if ARR is installed and all of the FREB selections were selected ?&lt;/p&gt;  &lt;p&gt;After some research we found the problem lies in the installation order of the IIS Trace Feature and the IIS Extensions that extend the built in Trace areas. If the IIS Trace feature is installed after the extensions that extend the trace areas, the new areas are not added.&amp;#160; This is because there is currently no detection or way to tell the Trace feature there are new items to add to the default list.&lt;/p&gt;  &lt;p&gt;At the time of this post the only extensions that extend the trace areas are &lt;strong&gt;Application Request Routing&lt;/strong&gt; and &lt;strong&gt;URL Rewrite &lt;/strong&gt;but this could apply to future releases as well.&lt;/p&gt;  &lt;p&gt;To verify&amp;#160; if&amp;#160; your are setup correctly, simply create a new or edit an existing&amp;#160; FREB rule and check the &lt;strong&gt;WWW&lt;/strong&gt; &lt;strong&gt;Server&lt;/strong&gt; provider and you should see &lt;strong&gt;RequestRouting&lt;/strong&gt; and &lt;strong&gt;Rewrite&lt;/strong&gt;&amp;#160; listed under the &lt;strong&gt;Areas&lt;/strong&gt;&amp;#160; as shown here. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/richma/TraceProviders_1C0427C1.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="TraceProviders" border="0" alt="TraceProviders" src="http://blogs.iis.net/blogs/richma/TraceProviders_thumb_3718E2D0.png" width="375" height="284" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;You can also verify this in the Applicationhost.config&amp;#160; file ( %windir%\System32\inetsrv\config\administration.config)&amp;#160; where the trace providers and areas are defined. &lt;/p&gt;  &lt;pre class="csharpcode"&gt;&amp;lt;traceProviderDefinitions&amp;gt;
                &amp;lt;add name=&lt;span class="str"&gt;&amp;quot;WWW Server&amp;quot;&lt;/span&gt; guid=&lt;span class="str"&gt;&amp;quot;{3a2a4e84-4c21-4981-ae10-3fda0d9b0f83}&amp;quot;&lt;/span&gt;&amp;gt;
                    &amp;lt;areas&amp;gt;
                        &amp;lt;clear /&amp;gt;
                        &amp;lt;add name=&lt;span class="str"&gt;&amp;quot;Authentication&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;=&lt;span class="str"&gt;&amp;quot;2&amp;quot;&lt;/span&gt; /&amp;gt;
                        &amp;lt;add name=&lt;span class="str"&gt;&amp;quot;Security&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;=&lt;span class="str"&gt;&amp;quot;4&amp;quot;&lt;/span&gt; /&amp;gt;
                        &amp;lt;add name=&lt;span class="str"&gt;&amp;quot;Filter&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;=&lt;span class="str"&gt;&amp;quot;8&amp;quot;&lt;/span&gt; /&amp;gt;
                        &amp;lt;add name=&lt;span class="str"&gt;&amp;quot;StaticFile&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;=&lt;span class="str"&gt;&amp;quot;16&amp;quot;&lt;/span&gt; /&amp;gt;
                        &amp;lt;add name=&lt;span class="str"&gt;&amp;quot;CGI&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;=&lt;span class="str"&gt;&amp;quot;32&amp;quot;&lt;/span&gt; /&amp;gt;
                        &amp;lt;add name=&lt;span class="str"&gt;&amp;quot;Compression&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;=&lt;span class="str"&gt;&amp;quot;64&amp;quot;&lt;/span&gt; /&amp;gt;
                        &amp;lt;add name=&lt;span class="str"&gt;&amp;quot;Cache&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;=&lt;span class="str"&gt;&amp;quot;128&amp;quot;&lt;/span&gt; /&amp;gt;
                        &amp;lt;add name=&lt;span class="str"&gt;&amp;quot;RequestNotifications&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;=&lt;span class="str"&gt;&amp;quot;256&amp;quot;&lt;/span&gt; /&amp;gt;
                        &amp;lt;add name=&lt;span class="str"&gt;&amp;quot;Module&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;=&lt;span class="str"&gt;&amp;quot;512&amp;quot;&lt;/span&gt; /&amp;gt;
                        &amp;lt;add name=&lt;span class="str"&gt;&amp;quot;FastCGI&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;=&lt;span class="str"&gt;&amp;quot;4096&amp;quot;&lt;/span&gt; /&amp;gt;
                     &lt;strong&gt;   &amp;lt;add name=&lt;span class="str"&gt;&amp;quot;Rewrite&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;=&lt;span class="str"&gt;&amp;quot;1024&amp;quot;&lt;/span&gt; /&amp;gt;
                        &amp;lt;add name=&lt;span class="str"&gt;&amp;quot;RequestRouting&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;=&lt;span class="str"&gt;&amp;quot;2048&amp;quot;&lt;/span&gt; /&amp;gt;&lt;/strong&gt;
                    &amp;lt;/areas&amp;gt;
                &amp;lt;/add&amp;gt;
               ------------------------ Truncated for readability ----------------&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;            &amp;lt;/traceProviderDefinitions&amp;gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;h2&gt;&lt;u&gt;Resolution&lt;/u&gt;&lt;/h2&gt;

&lt;p&gt;Either of the following options can be used to fix the issue.&lt;/p&gt;

&lt;p&gt;a) Using Programs and Features find the Extension that is missing&amp;#160; trace areas, right click select REPAIR. &lt;/p&gt;

&lt;p&gt;or&lt;/p&gt;

&lt;p&gt;b) Manually add the trace areas to the Applicationhost.config file as shown above. &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;PS . If you don't already use FREB&amp;#160; its&amp;#160; a great tool for analyzing general IIS issues along with ARR and URL Rewrite, and highly recommended.&amp;#160; See the following for examples tracing ARR and&amp;#160; URL Rewrite. &lt;/p&gt;

&lt;p&gt;&lt;a href="http://learn.iis.net/page.aspx/467/using-failed-request-tracing-to-trace-rewrite-rules/" target="_blank"&gt;Using Failed Request Tracing to Trace Rewrite Rules&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://learn.iis.net/page.aspx/488/using-failed-request-tracing-rules-to-troubleshoot-application-request-routing-arr/" target="_blank"&gt;Using Failed Request Tracing Rules to Troubleshoot Application Request Routing (ARR)&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=3874812" width="1" height="1"&gt;</description></item><item><title>Troubleshooting SQL Server 2008 Express installations with WebPI</title><link>http://blogs.iis.net/richma/archive/2010/04/30/troubleshooting-sql-server-2008-express-installations-with-webpi-part-1.aspx</link><pubDate>Thu, 29 Apr 2010 23:00:53 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3811715</guid><dc:creator>richma</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/richma/rsscomments.aspx?PostID=3811715</wfw:commentRss><comments>http://blogs.iis.net/richma/archive/2010/04/30/troubleshooting-sql-server-2008-express-installations-with-webpi-part-1.aspx#comments</comments><description>&lt;p&gt;One of the challenges of troubleshooting SQL installations with WebPI is that sometimes the details passed back to Webpi do not provide enough information to tell you how to resolve the issue. This is not the fault of WebPi or the SQL installer, but due to the fact that not all of the errors are exposed&amp;#160; to the external process(WebPI) therefore all we can report is that something failed.&amp;#160;&amp;#160; When this occurs you need to examine the SQL logs manually to find the details for the installation failure. In this blog we will help identify some of the common failures and provide the resolutions for each. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;strong&gt;&lt;u&gt;Where to find the Logs&lt;/u&gt;&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;When the installation fails you will be presented with the following error page.&amp;#160; &lt;/p&gt;  &lt;p&gt;The first “View log here” will point to the SQL Summary.txt log that provides a summary of the installation and results.&amp;#160; At the top of the log there you will see&amp;#160; Final result: Passed/Failed to indicate if there were a failure at this level.&amp;#160; If the result is&amp;#160; Passed then&amp;#160; click on the “View log here” link for the Web Platform Installer log .&amp;#160;&amp;#160; If no error messages are found in either&amp;#160; link then review&amp;#160; SQL Logs manually.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/richma/image_266B85C9.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.iis.net/blogs/richma/image_thumb_488F5783.png" width="604" height="150" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Here are the log locations for manual inspection.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;strong&gt;WebPI Logs&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Windows Vista / 2008 : %localappdata%\Microsoft\Web Platform Installer\logs\webpi &lt;/li&gt;    &lt;li&gt;Windows XP, W2K3: %USERPROFILE%\Local Settings\Application Data\Microsoft\Web Platform Installer\logs\webpi &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;SQL Installation Logs &lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\ &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Resources&lt;/strong&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms143702.aspx" target="_blank"&gt;How to: View and Read SQL Server Setup Log Files&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms187885.aspx" target="_blank"&gt;Viewing the SQL Server Error Log&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://download.microsoft.com/download/1/6/3/163A851B-D956-42E9-B426-F5C0EBE6B654/ReleaseNotes.htm" target="_blank"&gt;SQL Server 2008 Release notes&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/sqlexpress/archive/2009/06/15/installing-sql-server-2008-guidance.aspx" target="_blank"&gt;Direct Link to SQL Installer&lt;/a&gt;&amp;#160; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;&lt;u&gt;ERROR : Attributes do not match. Present attributes..&lt;/u&gt;&lt;/strong&gt; &lt;/h3&gt;  &lt;p&gt;This can occur when you try to install SQL on a Drive with either Compression, Encryption or the Archive bit set.&lt;/p&gt;  &lt;p&gt;This error&amp;#160; will be&amp;#160; found in the&amp;#160; &lt;strong&gt;SQL log Summary.txt .&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Final result:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SQL Server installation failed. To continue, investigate the reason for the failure, correct the problem, uninstall SQL Server, and then rerun SQL Server Setup.&lt;/p&gt;  &lt;p&gt;Exit code (Decimal):&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -2068578304&lt;/p&gt;  &lt;p&gt;Exit facility code:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 1204&lt;/p&gt;  &lt;p&gt;Exit error code:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;  &lt;p&gt;Exit message:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Attributes do not match. Present attributes (Directory, Compressed) , included attributes (0), excluded attributes (Compressed, Encrypted).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;strong&gt;Resolution&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The work around for this error is documented in &lt;a href="http://support.microsoft.com/kb/957453" target="_blank"&gt;KB957453&lt;/a&gt; which describes this problem when the archive bit is set on the installation directory.&amp;#160; This can also&amp;#160; occur when Compression or or Encryption is enabled on the drive , which will be C:\&amp;#160; if using WebPI to install SQL. &lt;/p&gt;  &lt;p&gt;Following the workaround section of &lt;a href="http://support.microsoft.com/kb/957453" target="_blank"&gt;KB957453&lt;/a&gt; disable the following settings on the drive. &lt;/p&gt;  &lt;p&gt;- Folder is ready for archiving&lt;/p&gt;  &lt;p&gt;- Compress contents to save disk space&lt;/p&gt;  &lt;p&gt;- Encrypt contents to save disk space&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;&lt;u&gt;ERROR: Unrecognized configuration section system.serviceModel&lt;/u&gt;&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;During the installation the installer tries to read the configuration file (Machine.Config) . If this is invalid the installation will fail. Below is one example of such a failure. &lt;/p&gt;  &lt;p&gt;This error&amp;#160; will be&amp;#160; found in the &lt;strong&gt;SQL log&lt;/strong&gt;&amp;#160;&amp;#160; &lt;strong&gt;Detail_GlobalRules.text&amp;#160; &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;2010-03-29 16:17:24 Slp:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Inner exception type: System.Configuration.ConfigurationErrorsException&lt;/p&gt;  &lt;p&gt;2010-03-29 16:17:24 Slp:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Message: &lt;/p&gt;  &lt;p&gt;2010-03-29 16:17:24 Slp:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Unrecognized configuration section system.serviceModel. (c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\machine.config line 134)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;strong&gt;Resolution&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This error occurs when there is a reference to the&amp;#160; system.serviceModel section but it is not defined in the &amp;lt;configSections&amp;gt;&amp;#160; area of the configuration file.&amp;#160; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;If you have access to a working Machine.Config file you can manually add the missing configuration declarations to the &amp;lt;configSections&amp;gt;&amp;#160; area of he configuration file. The section groups may vary but if the error message is referring to system.ServiceModel you can add the following sections.&amp;#160; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&amp;lt;sectionGroup name=&lt;span class="str"&gt;&amp;quot;system.serviceModel&amp;quot;&lt;/span&gt; type=&lt;span class="str"&gt;&amp;quot;System.ServiceModel.Configuration.ServiceModelSectionGroup, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;&lt;/span&gt;&amp;gt;
            &amp;lt;section name=&lt;span class="str"&gt;&amp;quot;behaviors&amp;quot;&lt;/span&gt; type=&lt;span class="str"&gt;&amp;quot;System.ServiceModel.Configuration.BehaviorsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;&lt;/span&gt;/&amp;gt;
            &amp;lt;section name=&lt;span class="str"&gt;&amp;quot;bindings&amp;quot;&lt;/span&gt; type=&lt;span class="str"&gt;&amp;quot;System.ServiceModel.Configuration.BindingsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;&lt;/span&gt;/&amp;gt;
            &amp;lt;section name=&lt;span class="str"&gt;&amp;quot;client&amp;quot;&lt;/span&gt; type=&lt;span class="str"&gt;&amp;quot;System.ServiceModel.Configuration.ClientSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;&lt;/span&gt;/&amp;gt;
            &amp;lt;section name=&lt;span class="str"&gt;&amp;quot;comContracts&amp;quot;&lt;/span&gt; type=&lt;span class="str"&gt;&amp;quot;System.ServiceModel.Configuration.ComContractsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;&lt;/span&gt;/&amp;gt;
            &amp;lt;section name=&lt;span class="str"&gt;&amp;quot;commonBehaviors&amp;quot;&lt;/span&gt; type=&lt;span class="str"&gt;&amp;quot;System.ServiceModel.Configuration.CommonBehaviorsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;&lt;/span&gt; allowDefinition=&lt;span class="str"&gt;&amp;quot;MachineOnly&amp;quot;&lt;/span&gt; allowExeDefinition=&lt;span class="str"&gt;&amp;quot;MachineOnly&amp;quot;&lt;/span&gt;/&amp;gt;
            &amp;lt;section name=&lt;span class="str"&gt;&amp;quot;diagnostics&amp;quot;&lt;/span&gt; type=&lt;span class="str"&gt;&amp;quot;System.ServiceModel.Configuration.DiagnosticSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;&lt;/span&gt;/&amp;gt;
            &amp;lt;section name=&lt;span class="str"&gt;&amp;quot;extensions&amp;quot;&lt;/span&gt; type=&lt;span class="str"&gt;&amp;quot;System.ServiceModel.Configuration.ExtensionsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;&lt;/span&gt;/&amp;gt;
            &amp;lt;section name=&lt;span class="str"&gt;&amp;quot;machineSettings&amp;quot;&lt;/span&gt; type=&lt;span class="str"&gt;&amp;quot;System.ServiceModel.Configuration.MachineSettingsSection, SMDiagnostics, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;&lt;/span&gt; allowDefinition=&lt;span class="str"&gt;&amp;quot;MachineOnly&amp;quot;&lt;/span&gt; allowExeDefinition=&lt;span class="str"&gt;&amp;quot;MachineOnly&amp;quot;&lt;/span&gt;/&amp;gt;
            &amp;lt;section name=&lt;span class="str"&gt;&amp;quot;serviceHostingEnvironment&amp;quot;&lt;/span&gt; type=&lt;span class="str"&gt;&amp;quot;System.ServiceModel.Configuration.ServiceHostingEnvironmentSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;&lt;/span&gt;/&amp;gt;
            &amp;lt;section name=&lt;span class="str"&gt;&amp;quot;services&amp;quot;&lt;/span&gt; type=&lt;span class="str"&gt;&amp;quot;System.ServiceModel.Configuration.ServicesSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;&lt;/span&gt;/&amp;gt;
        &amp;lt;/sectionGroup&amp;gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;        &amp;lt;sectionGroup name=&lt;span class="str"&gt;&amp;quot;system.serviceModel.activation&amp;quot;&lt;/span&gt; type=&lt;span class="str"&gt;&amp;quot;System.ServiceModel.Activation.Configuration.ServiceModelActivationSectionGroup, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;&lt;/span&gt;&amp;gt;
            &amp;lt;section name=&lt;span class="str"&gt;&amp;quot;diagnostics&amp;quot;&lt;/span&gt; type=&lt;span class="str"&gt;&amp;quot;System.ServiceModel.Activation.Configuration.DiagnosticSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;&lt;/span&gt;/&amp;gt;
            &amp;lt;section name=&lt;span class="str"&gt;&amp;quot;net.pipe&amp;quot;&lt;/span&gt; type=&lt;span class="str"&gt;&amp;quot;System.ServiceModel.Activation.Configuration.NetPipeSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;&lt;/span&gt;/&amp;gt;
            &amp;lt;section name=&lt;span class="str"&gt;&amp;quot;net.tcp&amp;quot;&lt;/span&gt; type=&lt;span class="str"&gt;&amp;quot;System.ServiceModel.Activation.Configuration.NetTcpSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;&lt;/span&gt;/&amp;gt;
        &amp;lt;/sectionGroup&amp;gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;





















.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;&lt;strong&gt;&lt;u&gt;Error:&amp;#160; Performance counter registry hive consistency check&amp;#160;&amp;#160; &amp;quot;The performance counter registry hive is corrupted&lt;/u&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;I have seen two causes for the following error, either the performance counter libraries are corrupted and need to be repaired or an issue where the localized version of the performance counters are not present.&lt;/p&gt;

&lt;p&gt;This error&amp;#160; will be&amp;#160; found in the&amp;#160; SQL log&lt;strong&gt; Summary.txt .&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Final result:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SQL Server installation failed. To continue, investigate the reason for the failure, correct the problem, uninstall SQL Server, and then rerun SQL Server Setup. 
  &lt;br /&gt;&amp;#160; Exit code (Decimal):&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -2067922940 

  &lt;br /&gt;&amp;#160; Exit facility code:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 1214 

  &lt;br /&gt;&amp;#160; Exit error code:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 4 

  &lt;br /&gt;&amp;#160; Exit message:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; The performance counter registry hive is corrupted. To continue, you must repair the performance counter registry hive. For more information, see &lt;a href="http://support.microsoft.com/kb/300956"&gt;http://support.microsoft.com/kb/300956&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;strong&gt;Resolution&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;a) If you are running Windows Vista or later the following steps can be used to rebuild the counters.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Click Start&amp;gt;All Programs &amp;gt; Accessories. &lt;/li&gt;

  &lt;li&gt;Right-click Command Prompt, and then click Run as administrator. &lt;/li&gt;

  &lt;li&gt;At the command prompt, type &lt;strong&gt;lodctr /r,&lt;/strong&gt; and then press ENTER. &lt;/li&gt;

  &lt;li&gt;Assuming the message was that this was successful , retry the SQL installation. &lt;/li&gt;

  &lt;li&gt;Reference : &lt;a href="http://technet.microsoft.com/en-us/library/cc774958.aspx"&gt;http://technet.microsoft.com/en-us/library/cc774958.aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;b)&amp;#160; For earlier operating systems follow the steps in &lt;a href="http://support.microsoft.com/kb/300956" target="_blank"&gt;Kb300956&lt;/a&gt; listed in the error message. &lt;/p&gt;

&lt;p&gt;c) If neither of the above resolve the issue and your and running a non-English version of Windows you may be running into the localization issue. The following steps outline the steps to resolve this on&amp;#160; a German system that was encountering the issue. &lt;/p&gt;

&lt;p&gt;To identify what key you need to alter on your system run &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx" target="_blank"&gt;Process Monitor&lt;/a&gt; while running the SQL installer.&amp;#160; When the SQL installation fails check the Process Monitor logs for entries like the following where &lt;strong&gt;SomeNumber&lt;/strong&gt; will represent the country code of the system that SQL is trying use for the performance counter. Use this number in place of 007 in the steps below.&lt;/p&gt;

&lt;p&gt;HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\&amp;lt;&lt;strong&gt;SomeNumber&lt;/strong&gt;&amp;gt;\Counter (NAME NOT FOUND) 

  &lt;br /&gt;HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\&amp;lt;&lt;strong&gt;SomeNumber&lt;/strong&gt;&amp;gt;\Help (NAME NOT FOUND) &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Open RegEdit.exe&amp;#160;&amp;#160; and navigate to the following key. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Perflib &lt;/li&gt;

  &lt;li&gt;Under this you will see the 009 and 007 keys . The 009 key&amp;#160; is for English and the 007&amp;#160; is for German . ( In the case I encountered there were no values under&amp;#160; 007) &lt;/li&gt;

  &lt;li&gt;Right Click on the 009 key and there will be an export option . Save that anywhere on your system &lt;/li&gt;

  &lt;li&gt;Go to the&amp;#160; location of the file you saved which will have a .REG extension. Right Click on the file and select Edit.&amp;#160; &lt;/li&gt;

  &lt;li&gt;In the first line you will see&amp;#160; HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009 . Change this too&amp;#160; HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\007 so we can migrate these settings to the 007 key.&amp;#160; Save the file. &lt;/li&gt;

  &lt;li&gt;Now right click on the file and select Merge. &lt;/li&gt;

  &lt;li&gt;Check the registry and you should see settings under&amp;#160; HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Perflib\007 &lt;/li&gt;

  &lt;li&gt;Try the SQL setup again &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here are some different country codes you may see when troubleshooting this. &lt;/p&gt;

&lt;p&gt;Perflib\009 -- English 
  &lt;br /&gt;Perflib\01F -- Turkish 

  &lt;br /&gt;Perflib\013 -- Dutch 

  &lt;br /&gt;Perflib\007 – German&lt;/p&gt;

&lt;p&gt;Perflib\014 -- Norwegian&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;&lt;strong&gt;&lt;u&gt;Error: is not a valid login or you do not have permission&lt;/u&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;This error can occur when you the username that you are using to install SQL is the same as the name of the machine.&amp;#160; &lt;/p&gt;

&lt;p&gt;This error&amp;#160; will be&amp;#160; found in the&amp;#160; SQL log&lt;strong&gt; Summary.txt .&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Configuration error code:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0x12C2466D &lt;/p&gt;

&lt;p&gt;Configuration error description: '' is not a valid login or you do not have permission. &lt;/p&gt;

&lt;p&gt;Configuration log:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\20100329_130529\Detail.txt &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resolution&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Install SQL using another User account this is not the same as the machine name or rename you machine.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;&lt;strong&gt;&lt;u&gt;ERROR: Downloaded file failed signature verification and may have been tampered with.&lt;/u&gt;&lt;/strong&gt; &lt;/h3&gt;

&lt;p&gt;This is typically a transient error that can occur when the download is corrupted.&lt;/p&gt;

&lt;p&gt;The error will be found in the &lt;strong&gt;WebPI log WebPI.txt &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;DownloadManager Error: 0 : Signature verification failed on downloaded file. URL: &lt;a href="http://download.microsoft.com/download/e/9/b/e9bcf5d7-2421-464f-94dc-0c694ba1b5a4/SQLEXPRADV_x86_ENU.exe"&gt;http://download.microsoft.com/download/e/9/b/e9bcf5d7-2421-464f-94dc-0c694ba1b5a4/SQLEXPRADV_x86_ENU.exe&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resolution&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;By default WebPI stores a copy of the installers for installation retries. In this case you will want to delete the cached copy and try downloading a new one.&lt;/p&gt;

&lt;p&gt;The cache location of the installers can be found here : %LocalAppData%\Microsoft\Web Platform Installer\installers&lt;/p&gt;

&lt;p&gt;If the problem persists using WebPI try downloading the installer directly from the link below then running the MSI directly.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/sqlexpress/archive/2009/06/15/installing-sql-server-2008-guidance.aspx"&gt;http://blogs.msdn.com/sqlexpress/archive/2009/06/15/installing-sql-server-2008-guidance.aspx&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;&lt;strong&gt;&lt;u&gt;ERROR: Wait on the Database Engine recovery handle failed&lt;/u&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;This error&amp;#160; will be&amp;#160; found in the&amp;#160; &lt;strong&gt;SQL log Summary.txt .&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160; Feature:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Database Engine Services 
  &lt;br /&gt;&amp;#160; Status:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Failed: see logs for details 

  &lt;br /&gt;&amp;#160; MSI status:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Passed 

  &lt;br /&gt;&amp;#160; Configuration status:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Failed: see details below 

  &lt;br /&gt;&amp;#160; Configuration error code:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0xBE03358B@1306@24 

  &lt;br /&gt;&amp;#160; Configuration error description: Wait on the Database Engine recovery handle failed. Check the SQL Server error log for potential causes.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Per the error message further investigation of the &lt;strong&gt;SQLServer Error Log_&amp;lt;DateTimeStamp&amp;gt;.txt&lt;/strong&gt;&amp;#160; led to the following error.&lt;/p&gt;

&lt;p&gt;2009-11-19 20:35:15.85 spid7s&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Starting up database 'mssqlsystemresource'. 
  &lt;br /&gt;2009-11-19 20:35:16.59 spid7s&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Error: 15209, Severity: 16, State: 1. 

  &lt;br /&gt;2009-11-19 20:35:16.59 spid7s&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; An error occurred during encryption.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resolution&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;In this case&amp;#160; the resolution was found&amp;#160; in the following article:&lt;/p&gt;

&lt;p&gt;The SQL Server service failed to start&lt;/p&gt;

&lt;p&gt;&lt;a href="http://support.microsoft.com/kb/920114"&gt;http://support.microsoft.com/kb/920114&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Here is another article that pertains the original error. &lt;/p&gt;

&lt;p&gt;960781 Error message when you try to upgrade to SQL Server 2008: &amp;quot;Wait on the Database Engine recovery handle failed&amp;quot; 
  &lt;br /&gt;&lt;a href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;960781"&gt;http://support.microsoft.com/default.aspx?scid=kb;EN-US;960781&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://support.microsoft.com/kb/920114"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;h3&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;I hope this was helpful in providing&amp;#160; shortcut to any of your SQL Express installation issues with WebPI.&amp;#160; If you have other issues or need assistance you can post your questions to the &lt;a href="http://forums.iis.net/1155.aspx" target="_blank"&gt;WEBPI support forum&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;&lt;a href="http://support.microsoft.com/kb/973301"&gt;&amp;#160;&lt;/a&gt;&lt;/h3&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=3811715" width="1" height="1"&gt;</description></item><item><title>Installing Acquia Drupal on IIS using the Web Platform Installer</title><link>http://blogs.iis.net/richma/archive/2010/03/03/installing-acquia-drupal-on-iis-using-the-web-platform-installer.aspx</link><pubDate>Wed, 03 Mar 2010 17:57:47 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3711725</guid><dc:creator>richma</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/richma/rsscomments.aspx?PostID=3711725</wfw:commentRss><comments>http://blogs.iis.net/richma/archive/2010/03/03/installing-acquia-drupal-on-iis-using-the-web-platform-installer.aspx#comments</comments><description>&lt;h2&gt;Introduction&lt;/h2&gt;  &lt;p&gt;In the following walkthrough we will step through the installation of Acquia Drupal using the Web Platform Installer.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Installation &lt;/h2&gt;  &lt;p&gt;1. Launch the &lt;a href="http://www.microsoft.com/web/downloads/platform.aspx" target="_blank"&gt;Web Platform Installer&lt;/a&gt; either from IIS Manager or &lt;strong&gt;Start&lt;/strong&gt; &amp;gt; &lt;strong&gt;All Programs&lt;/strong&gt; &amp;gt; &lt;strong&gt;Microsoft Web Platform Installer&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;2. Click the &lt;strong&gt;Web Applications&lt;/strong&gt;&amp;#160; tab&amp;#160; and the select &lt;strong&gt;Acquia Drupal&lt;/strong&gt; . Click &lt;strong&gt;Install&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/richma/drupal1_5670ABE9.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="drupal1" border="0" alt="drupal1" src="http://blogs.iis.net/blogs/richma/drupal1_thumb_663040ED.jpg" width="644" height="478" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;3. On the license Screen the following dependencies will be picked up , or omitted if you already have the feature installed. . The versions listed are current for the time the blog was drafted and are subject to change.&lt;/p&gt;  &lt;p&gt;Dependencies.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Url Rewrite 1.1 &lt;/li&gt;    &lt;li&gt;MySQL Connector/Net 5.2 &lt;/li&gt;    &lt;li&gt;Php 5.2.12 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Optional&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Windows Cache Extension for Php 5.2 &lt;/li&gt;    &lt;li&gt;MySQL Windows Essential 5.1 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;4. &lt;strong&gt;Step 1 of 2: Enter your site Information&lt;/strong&gt;.The next screen&amp;#160; “Enter your site information”&amp;#160; is where you will enter information about how you want to set up &lt;strong&gt;Acquia Drupal &lt;/strong&gt;in IIS. &lt;/p&gt;  &lt;p&gt;In the first option &lt;strong&gt;Web Site:&lt;/strong&gt; you can choose any existing website such as “&lt;strong&gt;Default Web Site&lt;/strong&gt;” or &lt;strong&gt;New Web Site&lt;/strong&gt;.Depending on which option is chosen the following options will be available.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Choose an existing Website&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Acquia Drupal application name&lt;/strong&gt;: This can be left at the default “acquia-drupal”&amp;#160; or enter a new name. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;New Web Site&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;&lt;strong&gt;Acquia Drupal &lt;/strong&gt;application name: Default “/” :&lt;/strong&gt;&amp;#160;&amp;#160; The slash indicates the root of the website you are about to create.This can be left at default here since the application is already isolated by a different website. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Web Site Name:&lt;/strong&gt;&amp;#160;&amp;#160; Accept the&amp;#160; Default “acquia-drupal”&amp;#160; or enter&amp;#160; a new name . &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Physical Path :&lt;/strong&gt; Defines the physical Path of the web site in IIS and&amp;#160; which is where the acquia-drupal application files are&amp;#160; installed. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;NOTE : The following 3 parameters make up the bindings for the IIS site. When creating additional sites one of these three&amp;#160; parameters needs to be different than the default web site( or other existing sites).&amp;#160; For example the Default Web Site is configured for All Unassigned IP’s&amp;#160; and the default Port 80. In this configuration you would need to either change the Port or create a host header.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;IP Address:&lt;/strong&gt; Choose an IP address from the list or leave at all unassigned if you are going to use a unique port or Host name for the site.. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Port:&lt;/strong&gt;&amp;#160; Default 80.&amp;#160; Leave at default or changed to desired port. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Host Name :&lt;/strong&gt; Enter a host name if you are differentiating by &lt;a href="http://technet.microsoft.com/en-us/library/cc753195(WS.10).aspx" target="_blank"&gt;host headers&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&amp;#160; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/richma/Acquia2_7A75BADE.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Acquia2" border="0" alt="Acquia2" src="http://blogs.iis.net/blogs/richma/Acquia2_thumb_2DA1CE7B.jpg" width="644" height="479" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;5.On the &lt;strong&gt;Enter Application information&lt;/strong&gt; screen you will enter application information for &lt;strong&gt;Acquia Drupal &lt;/strong&gt;including Database information, application passwords .&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Database&lt;/strong&gt; : &lt;strong&gt;Choose your database :&lt;/strong&gt;&amp;#160; This cannot be changed and is set to MYSQL. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Create New database /Use an Existing database:&lt;/strong&gt;&amp;#160; If installing &lt;strong&gt;Acquia Drupal &lt;/strong&gt;for the first time you will leave this at &lt;strong&gt;Create New Database&lt;/strong&gt;. If using an existing database you will need to provide the Database User name and password that was created in previous installation. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Database Administrator&lt;/strong&gt; : This defaults to “root” which is the default Admin account for MySQL. If you configured MySQL with another Admin account name, enter that here. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Database Administrator Password:&amp;#160; &lt;/strong&gt;Password for the account configured in the previous field. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Database User Name&lt;/strong&gt; : Default “drupaluser”&amp;#160; This can be configured to any name you wish. If you are connecting to an Existing Database you will use the name you configured in the first installation. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Database Password&lt;/strong&gt; + &lt;strong&gt;Confirm&lt;/strong&gt;:&amp;#160;&amp;#160; This is the password you will create for the account named in the previous field( i.e. drupaluser) &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Database Server&lt;/strong&gt;&amp;#160; : Use&amp;#160; Localhost for local MySQL installations. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Database Name&lt;/strong&gt; : Default &lt;strong&gt;Drupal &lt;/strong&gt;. This is the database name that will be added to your mySQL instance, you can accept the default or enter&amp;#160; a new name. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/richma/image_6B4EB637.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.iis.net/blogs/richma/image_thumb_24B17A95.png" width="651" height="772" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;6.When the installation is complete the following will be presented . Click on &lt;strong&gt;Launch&lt;/strong&gt; &lt;strong&gt;Acquia Drupal &lt;/strong&gt;to test the installation.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/richma/image_6A35B919.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.iis.net/blogs/richma/image_thumb_77D84F54.png" width="644" height="102" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;7. When you launch the site it will use the following address if you installed under the default web site: &lt;a title="http://localhost/acquia-drupal/install.php" href="http://localhost/acquia-drupal/install.php"&gt;http://localhost/acquia-drupal/install.php&lt;/a&gt; . Then after completing some initialization task the browser will have this address:&amp;#160; &lt;a title="http://localhost/acquia-drupal/install.php?locale=&amp;amp;profile=acquia" href="http://localhost/acquia-drupal/install.php?locale=&amp;amp;profile=acquia"&gt;http://localhost/acquia-drupal/install.php?locale=&amp;amp;profile=acquia&lt;/a&gt; and you should see the following page. You are now ready to work with your Acquia Drupal application. For information regarding the application, documentation can be found here. &lt;a title="http://acquia.com/documentation" href="http://acquia.com/documentation"&gt;http://acquia.com/documentation&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/richma/image_6C429215.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.iis.net/blogs/richma/image_thumb_68E0FA6D.png" width="644" height="483" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Support and other links&lt;/h2&gt;  &lt;p&gt;&lt;a href="http://acquia.com/drupal-support"&gt;Acquia Support&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://forums.iis.net/1155.aspx"&gt;IIS.Net Forums&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=3711725" width="1" height="1"&gt;</description></item><item><title>Installing WordPress on IIS using the Web Platform Installer</title><link>http://blogs.iis.net/richma/archive/2009/12/30/installing-word-press-on-iis-using-the-web-platform-installer-webpi.aspx</link><pubDate>Wed, 30 Dec 2009 20:13:12 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:3590140</guid><dc:creator>richma</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.iis.net/richma/rsscomments.aspx?PostID=3590140</wfw:commentRss><comments>http://blogs.iis.net/richma/archive/2009/12/30/installing-word-press-on-iis-using-the-web-platform-installer-webpi.aspx#comments</comments><description>&lt;h2&gt;Introduction&lt;/h2&gt;  &lt;p&gt;In the following walkthrough we will step through the installation of WordPress using the Web Platform Installer (WebPi).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Installation &lt;/h2&gt;  &lt;p&gt;1. Launch the &lt;a href="http://www.microsoft.com/web/downloads/platform.aspx" target="_blank"&gt;Web Platform Installer&lt;/a&gt; either from IIS Manager or &lt;strong&gt;Start&lt;/strong&gt; &amp;gt; &lt;strong&gt;All Programs&lt;/strong&gt; &amp;gt; &lt;strong&gt;Microsoft Web Platform Installer&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;2. Click the &lt;strong&gt;Web Applications&lt;/strong&gt;&amp;#160; tab&amp;#160; and the select WordPress. Click &lt;strong&gt;Install&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://blogs.iis.net/blogs/richma/Wp1New_6FA719F0.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Wp1New" border="0" alt="Wp1New" src="http://blogs.iis.net/blogs/richma/Wp1New_thumb_4D02DB75.jpg" width="636" height="543" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;3. On the next screen you will be prompted to accept the license for the products you wish to install. This includes your &lt;strong&gt;WordPress&lt;/strong&gt; selection along with associated dependencies. Optional items such as “Windows Cache Extensions 1.0 for PHP 5.2” can be removed by clicking the &lt;strong&gt;X&lt;/strong&gt; icon next to the product name. For this example I will leave all of the items in place. Click&lt;strong&gt; I Accept&lt;/strong&gt; to continue.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/richma/image_2CB3C431.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.iis.net/blogs/richma/image_thumb_5D66CBDC.png" width="636" height="605" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;4. On the next dialog you will be prompted to provide a password for the MySQL administrator account “Root” . Enter a password of your choice and click Continue. This will be needed later when you install the database for Wordpress.&lt;/p&gt;  &lt;p&gt;5. The next screen&amp;#160; &lt;strong&gt;“Enter your site information&lt;/strong&gt;”&amp;#160; is where you will enter information about how you want to set up &lt;strong&gt;WordPress&lt;/strong&gt; in IIS. &lt;/p&gt;  &lt;p&gt;In the first option &lt;strong&gt;Web Site:&lt;/strong&gt; you can choose any existing website such as “&lt;strong&gt;Default Web Site&lt;/strong&gt;” or &lt;strong&gt;New Web Site&lt;/strong&gt;.Depending on which option is chosen the following options will be available.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Choose an existing Website&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Wordpress application name&lt;/strong&gt;: This can be left at the default “wordpress”&amp;#160; or enter a new name. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;New Web Site&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Wordpress application name: Default “/” :&lt;/strong&gt;&amp;#160;&amp;#160; The slash indicates the root of the website you are about to create.This can be left at default here since the application is already isolated by a different website. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Web Site Name:&lt;/strong&gt;&amp;#160;&amp;#160; Accept the&amp;#160; Default “wordpress”&amp;#160; or enter&amp;#160; a new name . &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Physical Path :&lt;/strong&gt; Defines the physicalPath of the web site in IIS and will be where the WordPress application files are&amp;#160; installed. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;IP Address:&lt;/strong&gt; Choose an IP address from the list or leave at all unassigned if you are going to use a unique port or Host name for the site.. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Port:&lt;/strong&gt;&amp;#160; Default 80.&amp;#160; Leave at default or changed to desired port. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Host Name :&lt;/strong&gt; Enter a host name if you are differentiating by &lt;a href="http://technet.microsoft.com/en-us/library/cc753195(WS.10).aspx" target="_blank"&gt;host headers&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&amp;#160; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;For the purposes of this example I am choosing the “Default Web Site” and leaving the applicaiton name as “wordpress”. Click &lt;strong&gt;Continue&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/richma/image_35A00418.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.iis.net/blogs/richma/image_thumb_3316D25A.png" width="597" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;6.&amp;#160; On the &lt;strong&gt;Enter Application information&lt;/strong&gt; screen you will enter application information for Wordpress including Database information and&amp;#160; application passwords .&lt;/p&gt;  &lt;p&gt;Since this is a large dialog I have broken the screen shot in 2 pieces . Hopefully this makes it easier to follow.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&amp;#160;&lt;strong&gt;Database&lt;/strong&gt; : &lt;strong&gt;Choose your database :&lt;/strong&gt;&amp;#160; This cannot be changed and is set to MYSQL. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Create New database /Use an Existing database:&lt;/strong&gt;&amp;#160; If installing Wordpress for the first time you will leave this at &lt;strong&gt;Create New Database&lt;/strong&gt;. If using an existing database you will need to provide the Database User name and password that was created during a&amp;#160; previous installation. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Database Administrator&lt;/strong&gt; : This defaults to “root” which the default Administrator account for MySQL&amp;#160; which we configured earlier. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Database Administrator Password:&amp;#160; &lt;/strong&gt;Password for the account configured in the previous field. In a default setup this will be the password for the account “root”. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Database User Name&lt;/strong&gt; : Default “wordpressuser”&amp;#160; This can be configured to any name you wish. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Database Password&lt;/strong&gt; + &lt;strong&gt;Confirm&lt;/strong&gt;:&amp;#160;&amp;#160; This is the password you will create for the account named in the previous field. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Database Server&lt;/strong&gt;&amp;#160; : Use&amp;#160; Localhost for local MySQL installations. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Database Name&lt;/strong&gt; : Default wordpress . This is the database name that will be added to your MySQL instance, you can accept the default or enter&amp;#160; a new name. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/richma/image_307D7ACF.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.iis.net/blogs/richma/image_thumb_7E75B477.png" width="723" height="772" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;7. Unique Key Section of Dialog&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The keys are used to strengthen each of the elements and are not something you need to remember.&amp;#160; A reference to these settings can be found on the &lt;a href="http://codex.wordpress.org/Editing_wp-config.php" target="_blank"&gt;WordPress&lt;/a&gt; site under the Security section, See Security Keys .&lt;/p&gt;  &lt;p&gt;The mappings to the Field name in the installer are as follows.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Unique Key for Passwords :AUTH_KEY&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Unique Key for Secure Passwords: SECURE_AUTH_KEY&amp;amp;&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Unique Key for Authentication : LOGGED_IN_KEY&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Second Unique Key for Authentication&amp;#160; : NONCE_KEY&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;To populate these I used the &lt;a href="https://api.wordpress.org/secret-key/1.1/" target="_blank"&gt;online Generator&lt;/a&gt; from Wordpress&amp;#160; that will create 4 unique keys that can be used here. Note that if you use this just copy the Key value between the single quotes and shown in red below.&lt;/p&gt;  &lt;p&gt;define('AUTH_KEY', '&lt;font color="#ff0000"&gt;fZIgr9W-p3eE&amp;amp;]Qdmb@N8 HW%6bfPW!a1aT{C%fAKeH+;_@K=4:}ip1Q[V+tD)+P&lt;/font&gt;');&lt;/p&gt;  &lt;p&gt;Once this is completed click &lt;strong&gt;Continue&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://blogs.iis.net/blogs/richma/image_50D4491A.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.iis.net/blogs/richma/image_thumb_4DDEE467.png" width="644" height="317" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;8. When the installation is complete the following will be presented . Click on &lt;strong&gt;Launch&lt;/strong&gt; &lt;strong&gt;WordPress&lt;/strong&gt; to test the installation.&lt;/p&gt;  &lt;p&gt;The URL this will use based on the settings above will be &lt;a href="http://localhost/wordpress/"&gt;Http://localhost/wordpress/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/richma/image_6B30E9D9.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.iis.net/blogs/richma/image_thumb_76E6310B.png" width="644" height="120" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;9. If you see this the WordPress is up and running. For usage of WordPress I recommend visiting the &lt;a href="http://wordpress.org/"&gt;Wordpress.org&lt;/a&gt; site .&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.iis.net/blogs/richma/image_4DFB1C02.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.iis.net/blogs/richma/image_thumb_2AEAAA92.png" width="644" height="460" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Known Issues&lt;/h2&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;MY SQL Connector/Net version conflicts&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Currently we install MySQL Connector/Net version 5.2. If there is a later version the installation will fail with the following error. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Error&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;'MySQL Connector/Net 5.2' is Failure (Another version of this product is already installed. Installation of this version cannot continue. To configure or remove the existing version of this product, use Add/Remove Programs on the Control Panel.)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Resolution&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Side by Side installations of the connections are not supported. To resolve this issue the Later version is the only workaround if using Web Platform Installer to&amp;#160; install Wordpress. Alternatively you could install WordPress manually. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Url Rewrite Version conflicts&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If UrlRewrite V2.0&amp;#160; is installed&amp;#160; the installation will fail with the following error.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Error&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;'URL Rewrite 1.1' is Failure (A newer version of Microsoft URL Rewrite Module 1.1 for IIS 7 was found on this machine.)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Resolution&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Uninstall UrlRewrite 2.0 and Reinstall WordPress.&lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;/p&gt;  &lt;h2&gt;Support and other links&lt;/h2&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://wordpress.org/support/" target="_blank"&gt;WordPress.org Support&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://codex.wordpress.org/FAQ_Installation" target="_blank"&gt;WordPress Installation FAQ&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://forums.iis.net/1155.aspx" target="_blank"&gt;Web Platform Installer Forums&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://ruslany.net/tag/wordpress/" href="http://ruslany.net/tag/wordpress/"&gt;http://ruslany.net/tag/wordpress/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=3590140" width="1" height="1"&gt;</description></item></channel></rss>