<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Blog de l&amp;#39;équipe support IIS France -- French IIS Support Team Blog</title><subtitle type="html">Blog for the French IIS and ASP.net Support Team dealing with various toppics related to IIS configuration and web development</subtitle><id>http://blogs.msdn.com/b/friis/atom.aspx</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/friis/" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/b/friis/atom.aspx" /><generator uri="http://telligent.com" version="5.6.50428.7875">Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><updated>2013-01-02T14:27:00Z</updated><entry><title>Windows could not configure one or more system components: when upgrading from Windows 7 to Windows 8</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/friis/archive/2013/04/12/how-iis-can-mess-up-your-windows-8-upgrade.aspx" /><id>http://blogs.msdn.com/b/friis/archive/2013/04/12/how-iis-can-mess-up-your-windows-8-upgrade.aspx</id><published>2013-04-12T08:27:00Z</published><updated>2013-04-12T08:27:00Z</updated><content type="html">&lt;p&gt;&lt;span style="color: #1f497d;"&gt;Last weekend I wanted to upgrade my home workstation from Windows 7 Utimate to Windows 8 Professional, so that I could benefit from using the new Windows 8 Hyper-V client for my virtual machines. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;I chose to do an in place upgrade from Windows 7 to Windows 8, as I had already done before on other machines, keeping all my applications and my documents. This process works very well, and even apps that would not install on Windows 8 migrate without any problems from Windows 7 to Windows 8. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;But when I tried to upgrade to Windows 8 I had the following behavior: &lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;I had the &lt;/span&gt;'&lt;span style="font-family: Courier New; font-size: 9pt;"&gt;Installing Files _%&lt;/span&gt;' &lt;span style="color: #1f497d;"&gt;screen complete all the way to 100%&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;I had the &lt;/span&gt;'&lt;span style="font-family: Courier New; font-size: 9pt;"&gt;Configuring Components _%&lt;/span&gt;' &lt;span style="color: #1f497d;"&gt;screen also complete all the way to 100%&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;Following this I received the following cryptic error message: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Windows could not configure one or more system components. To install Windows, restart the computer and then restart the installation. &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://netitude.bc3tech.net/wp-content/uploads/2012/08/94.jpg"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-11-43-metablogapi/0511.041213_5F00_0827_5F00_HowIIScanme1.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;Clicking OK would roll back the Windows 8 upgrade, reboot the machine and restore it to its previous Windows 7 self. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;The rest of this article deals with the how and why you might get this behavior. If you are not interested in the nitty gritty, just go down to the solution part to fix it. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="color: #c00000;"&gt;So what just happened?&lt;/span&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;After spending some time looking into the matter, I was able to find out that Windows keeps a setup log (which was expected) in which it logs all the operations it attempts during the in place upgrade. The log file can be found at the following location: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; font-size: 9pt;"&gt;C:\$Windows.~BT\Sources\panther\setupact.log &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;The log is not appended to, so each new attempt to upgrade from Windows 7 to Windows 8 will wipe away the old log and create a new one in its place. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;Towards the end of this log, I was able to find, towards the end of the log, information that the installer was trying to install IIS 8. Searching for&lt;/span&gt; &lt;span style="font-family: Courier New; font-size: 9pt;"&gt;system32\inetserv\iissetup.exe&lt;/span&gt; &lt;span style="color: #1f497d;"&gt;from the bottom of the file upwards should do the trick to help you find the line. If you inspect the log file around these lines, you will see the setup tries to perform several operations for the install of IIS, all of which fail, and then the installer decides to roll back the installation all together. Hence the 'system component' that could not be configured is IIS. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;Now that we know this, the question becomes why does the configuration fail? Furthermore, I did not even have IIS installed on my machine, I only had Visual Studio 2010 for Windows Phone development installed. Hence, removing IIS from the machine was not possible, since there were no IIS components physically present. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;The next thing to try is to install IIS on the machine and see if this fails. And indeed after going through the IIS setup via the Windows Package Manager (Control Panel &amp;ndash; Turn Windows Components on and off interface) I was able to see that IIS installation was indeed failing, even when I tried to install under Windows 7. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;What not many people know is that IIS relies on the Windows CBS &amp;ndash; Component Based Setup and Servicing system, which is built into the OS, to install and uninstall packages. Basically, an IIS installation just asks CBS to deploy certain installation packages to the OS. The installer also keeps a detailed install log, which can be found here: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; font-size: 9pt;"&gt;C:\Windows\IIS7.log &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;Contrary to the Windows 8 upgrade log, this log gets appended to, and will contain all installation and uninstallation attempts you perform in chronological order. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;Looking through the log for the keyword &lt;/span&gt;&lt;span style="font-family: Courier New; font-size: 9pt;"&gt;&amp;lt;!!FAIL!!&amp;gt;&lt;/span&gt;&lt;span style="color: #1f497d;"&gt;, I was quickly able to spot information indicating that the instantiation of AESProvider had failed. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; font-size: 9pt;"&gt;[04/05/2013 19:33:37] Set ACLs on NetFrameworkConfigurationKey&lt;br /&gt;[04/05/2013 19:33:37] iisWasKey key container already exists&lt;br /&gt;[04/05/2013 19:33:37] Created iisWasKey user key&lt;br /&gt;[04/05/2013 19:33:37] iisConfigurationKey already exists&lt;br /&gt;[04/05/2013 19:33:37] iisConfigurationKey already exists&lt;br /&gt;&lt;span style="color: red;"&gt;&lt;strong&gt;[04/05/2013 19:33:37] &amp;lt; !!FAIL!! &amp;gt; Generating AesProvider (result=0x8009000d)&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;[04/05/2013 19:33:37] &amp;lt; !!FAIL!! &amp;gt; Install of component SharedLibraries result=0x8009000d&lt;br /&gt;[04/05/2013 19:33:37] &amp;lt; !!FAIL!! &amp;gt; COMPONENT::ExecuteCommand result=0x8009000d &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;AES is an encryption provider that IIS uses to encrypt sensitive data in the configuration files using specific RSA machine keys from Windows. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;If the machine keys that IIS uses to encrypt the configuration store using the AESProvider are somehow corrupted, then the provider instantiation will fail, and the install will fail. Since the Window 8 installer also tries to install IIS, and this fails, the upgrade fails and is rolled back. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #c00000;"&gt;&lt;strong&gt;&lt;br /&gt;The solution: &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;The RSA machine keys in Windows 7 and Windows 2008 are found at the following location: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; font-size: 9pt;"&gt;C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;The ACLs (access control lists) for the IIS keys are incorrect, hence the failure. The keys in question are the following (files starting with the numbers indicated and ending in the machine's GUID): &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; font-size: 9pt;"&gt;6de9cb26d2b98c01ec4e9e8b34824aa2_GUID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iisConfigurationKey&lt;br /&gt;d6d986f09a1ee04e24c949879fdb506c_GUID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NetFrameworkConfigurationKey&lt;br /&gt;76944fb33636aeddb9590521c2e8815a_GUID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iisWasKey &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;The easiest solution is to remove the files from the folder, as new ones will be re-created the next time you try and install IIS. This allows the IIS installation to succeed, and hence, it allows the upgrade to complete successfully. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;By Paul Cociuba&lt;br /&gt;&lt;a href="http://www.linqto.me/about/pcociuba"&gt;&lt;span style="color: blue; text-decoration: underline;"&gt;www.linqto.me&lt;/span&gt;&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10410540" width="1" height="1"&gt;</content><author><name>friis[at]microsoft.com</name><uri>http://blogs.msdn.com/friis_4000_microsoft.com/ProfileUrlRedirect.ashx</uri></author><category term="IIS7" scheme="http://blogs.msdn.com/b/friis/archive/tags/IIS7/" /><category term="machine keys" scheme="http://blogs.msdn.com/b/friis/archive/tags/machine+keys/" /><category term="upgrade" scheme="http://blogs.msdn.com/b/friis/archive/tags/upgrade/" /><category term="windows 8" scheme="http://blogs.msdn.com/b/friis/archive/tags/windows+8/" /></entry><entry><title>IIS 7/7.5 et la génération d’un log Handle suite à une erreur 500 provoquée par un lock que personne ne semble détenir</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/friis/archive/2013/01/14/iis-7-7-5-et-la-g-233-n-233-ration-d-un-log-handle-suite-224-une-erreur-500-provoqu-233-e-par-un-lock-que-personne-ne-semble-d-233-tenir.aspx" /><link rel="enclosure" type="application/zip" length="211326" href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-38-47-22/Handle.zip" /><id>http://blogs.msdn.com/b/friis/archive/2013/01/14/iis-7-7-5-et-la-g-233-n-233-ration-d-un-log-handle-suite-224-une-erreur-500-provoqu-233-e-par-un-lock-que-personne-ne-semble-d-233-tenir.aspx</id><published>2013-01-14T13:46:00Z</published><updated>2013-01-14T13:46:00Z</updated><content type="html">&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1f497d;"&gt;Au cours d'un incident, nous avions un lock qui g&amp;eacute;n&amp;eacute;rait une erreur 500 alors que personne ne semblait d&amp;eacute;tenir ce lock. Pour investiguer ce probl&amp;egrave;me il nous a fallu automatiser la g&amp;eacute;n&amp;eacute;ration d'un log Handle sur un fichier sp&amp;eacute;cifique. En th&amp;eacute;orie, cela est fort simple. Le lock provocant une erreur 500, je n'avais qu'&amp;agrave; me baser sur l'article suivant pour ex&amp;eacute;cuter l'utilitaire Handle.exe lorsqu'une erreur 500 est remont&amp;eacute;e&amp;nbsp;:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/b/friis/archive/2010/05/07/utiliser-freb-pour-g-n-rer-un-dump-sur-une-requ-te-longue-en-ex-cution.aspx"&gt;http://blogs.msdn.com/b/friis/archive/2010/05/07/utiliser-freb-pour-g-n-rer-un-dump-sur-une-requ-te-longue-en-ex-cution.aspx&lt;/a&gt; &lt;br /&gt;&lt;span style="color: #1f497d;"&gt;En pratique, cela est bien plus complexe qu'il n'y parait&amp;hellip; Voici la marche &amp;agrave; suivre d&amp;eacute;taill&amp;eacute;e&amp;nbsp;:&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 36pt;"&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;Positionnement de "&lt;span style="color: black;"&gt;Handle.exe&lt;span style="color: #1f497d;"&gt;" et des scripts n&amp;eacute;cessaires &amp;agrave; la g&amp;eacute;n&amp;eacute;ration du log Handle :&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 72pt;"&gt;&lt;span style="color: #1f497d;"&gt;A la fin de cet article, vous trouverez une archive nomm&amp;eacute;e "&lt;span style="color: black;"&gt;handle.zip&lt;span style="color: #1f497d;"&gt;"&lt;/span&gt; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #1f497d;"&gt;D&amp;eacute;compressez l'archive. Vous obtenez un dossier Handle &amp;agrave; positionner sur "&lt;span style="color: black;"&gt;C:\&lt;/span&gt;"&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 36pt;"&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;Configurer une r&amp;egrave;gle FREB sur le site impact&amp;eacute; pour g&amp;eacute;n&amp;eacute;rer une trace sur des erreurs 500 :&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 72pt;"&gt;&lt;span style="color: #1f497d;"&gt;Pour ce faire, vous pouvez suivre le plan d'action fourni &amp;agrave; l'adresse suivante&amp;nbsp;:&lt;br /&gt;&lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/friis/archive/2010/04/29/le-fonctionnement-de-freb-ou-comment-investiguer-une-erreur-http-sous-iis-7-7-5.aspx"&gt;http://blogs.msdn.com/b/friis/archive/2010/04/29/le-fonctionnement-de-freb-ou-comment-investiguer-une-erreur-http-sous-iis-7-7-5.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #1f497d;"&gt;Apr&amp;egrave;s cette &amp;eacute;tape, le fichier Web.config de votre site devrait contenir les &amp;eacute;l&amp;eacute;ments suivants :&lt;/span&gt;&lt;/p&gt;
&lt;p style="background: #d9d9d9; text-align: left; margin-left: 106pt;"&gt;&lt;span style="font-family: Consolas; font-size: 9pt;"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;system.webServer&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tracing&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;traceFailedRequests&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add path="*"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;traceAreas&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add provider="ASP" verbosity="Verbose" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add provider="ISAPI Extension" verbosity="Verbose" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,FastCGI" verbosity="Verbose" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/traceAreas&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;failureDefinitions statusCodes="500" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/add&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/traceFailedRequests&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tracing&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/system.webServer&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 36pt;"&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;Configurer l'ApplicationHost.config pour l'autoriser &amp;agrave; ex&amp;eacute;cuter un script &amp;agrave; la place d'une trace FREB :&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 72pt;"&gt;&lt;span style="color: #1f497d;"&gt;Ouvrez une invite de commande CMD en tant qu'administrateur et naviguez vers le r&amp;eacute;pertoire "&lt;span style="color: black;"&gt;C:\Windows\System32\inetsrv&lt;span style="color: #1f497d;"&gt;"&lt;/span&gt; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #1f497d;"&gt;Ex&amp;eacute;cutez la commande suivante :&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: left; margin-left: 108pt;"&gt;&lt;span style="color: black;"&gt;appcmd.exe set config -section:system.applicationHost/sites "/[name='NomDeVotreSite'].traceFailedRequestsLogging.customActionsEnabled:"true"" /commit:apphost&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 72pt;"&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="text-decoration: underline;"&gt;Remarque&lt;/span&gt;&amp;nbsp;:&lt;/em&gt;&lt;/strong&gt; Pensez &amp;agrave; remplacer NomDeVotreSite dans &lt;span style="color: black;"&gt;"/[name='NomDeVotreSite'] &lt;span style="color: #1f497d;"&gt;par le nom r&amp;eacute;el du site qui est impact&amp;eacute;.&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 72pt;"&gt;&amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 72pt;"&gt;&amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 36pt;"&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;Modifier le fichier Web.config de votre site afin d'indiquer &amp;agrave; IIS quel script ex&amp;eacute;cuter &amp;agrave; la place de la trace FREB :&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 72pt;"&gt;&lt;span style="color: #1f497d;"&gt;Ouvrez le fichier Web.config et remplacez la section &lt;span style="color: black;"&gt;&lt;span style="font-family: Consolas; font-size: 9pt;"&gt;&amp;lt;add path="*"&amp;gt;&lt;/span&gt;&lt;span style="color: #1f497d;"&gt; par la ligne suivante :&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: left; margin-left: 54pt;"&gt;&lt;span style="font-family: Consolas; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add path="*" customActionExe="c:\windows\system32\cscript.exe" customActionParams="C:\handle\handlefreb.vbs" customActionTriggerLimit="50"&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 36pt;"&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;Changez l'identit&amp;eacute; de l'application pool &amp;agrave; "Local System" : &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 72pt;"&gt;&lt;span style="color: #1f497d;"&gt;Pour que le script puisse fonctionner, il faut que l'application pool tourne avec un compte ayant des privil&amp;egrave;ges &amp;eacute;lev&amp;eacute;s. &lt;/span&gt;&lt;span style="color: #1f497d;"&gt;Nous allons donc configurer l'application pool pour utiliser le compte "Local System" qui remplira parfaitement ce r&amp;ocirc;le. &lt;/span&gt;&lt;span style="color: #1f497d;"&gt;Je vous recommande toutefois de tester cette modification avant de la mettre en place sur un serveur de production. &lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 36pt;"&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;Ajustez les droits de ce compte : &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 72pt;"&gt;&lt;span style="color: #1f497d;"&gt;Pour permettre au compte "&lt;span style="color: black;"&gt;Local System&lt;span style="color: #1f497d;"&gt;" d'ex&amp;eacute;cuter Handle.exe il faut lui donner les droits de chargement et d&amp;eacute;chargement des pilotes de p&amp;eacute;riph&amp;eacute;riques. &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #1f497d;"&gt;Pour ce faire : &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #1f497d;"&gt;Ouvrez la MMC correspondant &amp;agrave; la "&lt;span style="color: black;"&gt;Strat&amp;eacute;gie de s&amp;eacute;curit&amp;eacute; locale&lt;span style="color: #1f497d;"&gt;" en passant via les outils d'administration &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #1f497d;"&gt;Sous "&lt;span style="color: black;"&gt;Strat&amp;eacute;gies locales &amp;gt; Attribution des droits utilisateur&lt;span style="color: #1f497d;"&gt;" ajoutez le compte "&lt;span style="color: black;"&gt;Local System&lt;span style="color: #1f497d;"&gt;" &amp;agrave; la strat&amp;eacute;gie "&lt;span style="color: black;"&gt;Charger et d&amp;eacute;charger les pilotes de p&amp;eacute;riph&amp;eacute;riques&lt;span style="color: #1f497d;"&gt;" &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 36pt;"&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;Testez la g&amp;eacute;n&amp;eacute;ration de la trace Handle &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 54pt;"&gt;&lt;span style="color: #1f497d;"&gt;Pour tester le bon fonctionnement de la r&amp;egrave;gle et de la g&amp;eacute;n&amp;eacute;ration du log Handle, vous pouvez ouvrir le fichier Web.config et modifier la ligne &lt;span style="color: black;"&gt;&amp;lt;failureDefinitions statusCodes="500" /&amp;gt; &lt;span style="color: #1f497d;"&gt;par &lt;span style="color: black;"&gt;&amp;lt;failureDefinitions statusCodes="100-500" /&amp;gt;&lt;span style="color: #1f497d;"&gt;. Ceci vous permettra de g&amp;eacute;n&amp;eacute;rer un log quelque soit le code retour HTTP. Un log devrait alors apparaitre dans le r&amp;eacute;pertoire C:\Handle portant comme nom la date et l'heure correspondant au moment de la g&amp;eacute;n&amp;eacute;ration du log.&amp;nbsp; Si cela ne fonctionne pas, n'h&amp;eacute;sitez pas &amp;agrave; ex&amp;eacute;cuter un IISRESET et &amp;agrave; refaire le test. Pensez &amp;agrave; remettre la valeur normale apr&amp;egrave;s avoir test&amp;eacute; la g&amp;eacute;n&amp;eacute;ration du script.&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 72pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 72pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 36pt;"&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;Modifiez le script "&lt;span style="color: black;"&gt;handlefreb.bat&lt;span style="color: #1f497d;"&gt;" &lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 54pt;"&gt;&lt;span style="color: #1f497d;"&gt;Ce script g&amp;eacute;n&amp;egrave;re actuellement un log handle sur le r&amp;eacute;pertoire "&lt;span style="color: black;"&gt;C:\handle&lt;span style="color: #1f497d;"&gt;". &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #1f497d;"&gt;Il va donc nous falloir le modifier pour g&amp;eacute;n&amp;eacute;rer la trace handle sur le bon r&amp;eacute;pertoire &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #1f497d;"&gt;Pour ce faire : &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #1f497d;"&gt;Ouvrez le script avec notepad et allez &amp;agrave; la derni&amp;egrave;re ligne qui devrait &amp;ecirc;tre la suivante : &lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 90pt;"&gt;&lt;span style="color: black;"&gt;c:\Handle\handle.exe -a -u -accepteula "&lt;span style="background-color: yellow;"&gt;&lt;strong&gt;C:\handle&lt;/strong&gt;&lt;/span&gt;" &amp;gt; c:\handle\%_date%_%_time%.log &lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify; margin-left: 54pt;"&gt;&lt;span style="color: #1f497d;"&gt;Modifiez la partie en jaune ci-dessus par le r&amp;eacute;pertoire que vous souhaitez surveiller &lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1f497d;"&gt;Les fichiers seront g&amp;eacute;n&amp;eacute;r&amp;eacute;s dans le r&amp;eacute;pertoire C:\Handle pour des raisons de simplicit&amp;eacute;.&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1f497d;"&gt;En esp&amp;eacute;rant que cet article vous sera utile.&lt;br /&gt;Sylvain Lecerf &amp;amp; L'&amp;eacute;quipe du Support IIS Microsoft France &lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10384722" width="1" height="1"&gt;</content><author><name>friis[at]microsoft.com</name><uri>http://blogs.msdn.com/friis_4000_microsoft.com/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>Cannot complete the installation of a certificate on IIS. Error "The signature of the certificate cannot be verified" 0x80096004</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/friis/archive/2013/01/14/cannot-complete-the-installation-of-a-certificate-on-iis-error-quot-the-signature-of-the-certificate-cannot-be-verified-quot-0x80096004.aspx" /><id>http://blogs.msdn.com/b/friis/archive/2013/01/14/cannot-complete-the-installation-of-a-certificate-on-iis-error-quot-the-signature-of-the-certificate-cannot-be-verified-quot-0x80096004.aspx</id><published>2013-01-14T13:45:00Z</published><updated>2013-01-14T13:45:00Z</updated><content type="html">&lt;p&gt;J'ai r&amp;eacute;cemment travaill&amp;eacute; sur un probl&amp;egrave;me d'installation d'un certificat Web Serveur dans IIS qui produisait l'erreur&amp;nbsp;"la signature du certificat n'a pas pu &amp;ecirc;tre v&amp;eacute;rifi&amp;eacute;e".&lt;br /&gt;De prime abord le certificat racine semblait &amp;ecirc;tre correctement install&amp;eacute; et l'interface CertMgr ne montrait pas de probl&amp;egrave;me particulier.&lt;br /&gt;Apr&amp;egrave;s une inspection plus minutieuse nous nous sommes aper&amp;ccedil;us que le client avait au final deux root CA sur le serveur Certsrv, un expirant en 2014 et l'autre en 2016. Le certificat du serveur IIS a &amp;eacute;t&amp;eacute; g&amp;eacute;n&amp;eacute;r&amp;eacute; via le root CA de 2016 alors que seul le root CA de 2014 &amp;eacute;tait install&amp;eacute; sur le serveur IIS.&lt;br /&gt;La solution est donc d'importer le root CA expirant en 2016 sur le serveur IIS.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;En esp&amp;eacute;rant que cet article vous soit utile.&lt;br /&gt;Sylvain Lecerf &amp;amp; L'&amp;eacute;quipe du Support IIS Microsoft France&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10384721" width="1" height="1"&gt;</content><author><name>friis[at]microsoft.com</name><uri>http://blogs.msdn.com/friis_4000_microsoft.com/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>When wrong permissions affect cipher being used for TLS connection</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/friis/archive/2013/01/14/when-wrong-permissions-affect-cipher-being-used-for-tls-connection.aspx" /><id>http://blogs.msdn.com/b/friis/archive/2013/01/14/when-wrong-permissions-affect-cipher-being-used-for-tls-connection.aspx</id><published>2013-01-14T08:47:18Z</published><updated>2013-01-14T08:47:18Z</updated><content type="html">&lt;p&gt;&lt;span style="color:#1f497d"&gt;The information from this blog POST has been compiled with the help of the following engineers: 
&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color:#1f497d"&gt;Daniel JUE – SNCF
&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color:#1f497d"&gt;Mathieu CLAUDEL – KNS
&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color:#1f497d"&gt;Marc BOUCHARD - Microsoft Corporation 
&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;I recently worked on an interesting SSL issue which manifests itself by the inability to negotiate a TLS connection using RSA with 2048 bits key exchange when connecting to a specific set of IIS 7.5 servers. The problem's symptoms were different depending on the client computer and browser version used:
&lt;/span&gt;&lt;/p&gt;&lt;ul style="margin-left: 72pt"&gt;&lt;li&gt;&lt;div&gt;&lt;span style="color:#1f497d"&gt;On a client computer running Windows 7 and Internet Explorer 9, SSL connection could be established but only using TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013) cipher suite. Under Internet Explorer's File/Properties menu, the following details were provided:
&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-11-43-metablogapi/6560.011413_5F00_1050_5F00_Whenwrongpe1.png" alt=""/&gt;&lt;span style="color:#1f497d"&gt;
				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;The same client could connect without any problem to any other IIS server using TLS_RSA_WITH_AES_128_CBC_SHA (0x002f) which could be checked in Internet Explorer:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-11-43-metablogapi/2043.011413_5F00_1050_5F00_Whenwrongpe2.png" alt=""/&gt;&lt;span style="color:#1f497d"&gt;&lt;br/&gt;
				&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color:#1f497d"&gt;On a client computer running Windows XP with IE6, SSL connection could just not be established and the generic "Page cannot be displayed" error was shown :  the XP client was simply failing during the SSL handshake
&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;Since the issue was only affecting a couple of servers, we first though the problem was due to bad configuration and we started to check if specific cipher suites were disabled on the affected servers (see &lt;a href="http://support.microsoft.com/kb/245030/en-us"&gt;How to Restrict the Use of Certain Cryptographic Algorithms and Protocols in Schannel.dll&lt;/a&gt;). It tuned out no cipher suites were disabled and the affected server were just using default SCHANNEL settings. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;One interesting thing pointed by our customer is that the &lt;a href="http://blogs.msdn.com/b/vijaysk/archive/2009/09/20/ssl-diagnostics-tool-for-iis-7.aspx"&gt;SSLDiag&lt;/a&gt; report was showing this error when trying to display the PrivateKey size :&lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;SERVER SSL PROTOCOLS&lt;br/&gt;PCT 1.0 : Enabled&lt;br/&gt;SSL 2.0 : Enabled&lt;br/&gt;SSL 3.0 : Enabled&lt;br/&gt;TLS 1.0 : Enabled&lt;br/&gt;…
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;#CertName : &lt;br/&gt;#Version : 3&lt;br/&gt;#You have a private key that corresponds to this certificate.&lt;br/&gt;#Signature Algorithm : sha256RSA&lt;br/&gt;&lt;span style="color:red"&gt;&lt;strong&gt;Error : PrivateKey.KeyExchangeAlgorithm PrivateKey.KeySize Keyset does not exist
&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;Unfortunately, the error above was pretty cryptic but I should have probably paid more attention to it ("Keyset" refers to the certificate's private key)…
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;After gathering some SCHANNEL ETL traces, my colleague Marc pointed that the KeySpec for the certificate was invalid. This could also be seen in the certutil output for the certificate :
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 35pt"&gt;&lt;span style="color:#1f497d"&gt;================ Certificate 2 ================&lt;br/&gt;…&lt;br/&gt;Subject:&lt;br/&gt;    CN=xxxxxx…&lt;br/&gt;&lt;br/&gt;CERT_KEY_PROV_INFO_PROP_ID(2):&lt;br/&gt;    …&lt;br/&gt;    Provider = Microsoft Enhanced Cryptographic Provider v1.0&lt;br/&gt;    ProviderType = 1&lt;br/&gt;    Flags = 20&lt;br/&gt;    &lt;strong&gt;KeySpec = 0&lt;br/&gt;
			&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;The expected value for a SSL Certificate is to have a KeySpec of 1 which means AT_KEYEXCHANGE as explained in the SCENARIO 3 section of this excellent article : &lt;a href="http://blogs.msdn.com/b/kaushal/archive/2012/10/07/error-hresult-0x80070520-when-adding-ssl-binding-in-iis.aspx"&gt;Error HRESULT: 0x80070520 when adding SSL binding in IIS&lt;/a&gt;.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;At this point, we tried to reimport the certificate from a PFX file but this didn't help: the certificate could be imported without error but the KeySpec was still invalid (0 value). We then tried to force the KeySpec during import using "certutil -importPFX PFXFile AT_KEYEXCHANGE" and we also started a &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx"&gt;PROCMON&lt;/a&gt; trace to check for potential issue during the certificate import. Bingo! We could see a couple of ACCESS_DENIED during access to C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys. After checking the permissions of this directory, we saw that the default permissions were not the same as on a working server. After fixing the permission issue, the certificate import succeeded and PROCMON didn't show any ACCESS_DENIED errors. We then stopped HTTP.SYS (net stop http) and restarted IIS (net start w3svc) and, finally, we could connect to the server using TLS 1.0 with RSA 2048 bits key exchange.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;The permission issue on C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys was preventing to get the right KeySpec  (AT_KEYEXCHANGE) for the RSA private key. Therefore, RSA couldn't be used for key exchange but could still be used for signature which is why TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA  was used.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;We hope the above blog may help other customers hitting similar issue.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;Best wishes for the upcoming year from the French IIS Support team!
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;Emmanuel Boersma
&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10384662" width="1" height="1"&gt;</content><author><name>friis[at]microsoft.com</name><uri>http://blogs.msdn.com/friis_4000_microsoft.com/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>ASP.NET Authentication test page</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/friis/archive/2013/01/08/asp-net-authentication-test-page.aspx" /><link rel="enclosure" type="application/zip" length="15585" href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-38-31-92/Authpage.zip" /><id>http://blogs.msdn.com/b/friis/archive/2013/01/08/asp-net-authentication-test-page.aspx</id><published>2013-01-08T16:27:00Z</published><updated>2013-01-08T16:27:00Z</updated><content type="html">&lt;p&gt;&lt;span style="color: #1f497d;"&gt;The information contained in this blog POST has been compiled with the help of the following engineers: &lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;Alexandre Lafargue &amp;ndash; Microsoft&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;To troubleshoot authentication issues, it's generally a good idea to use a test page in order to display the current authentication method / identity used for a specific client. In our team's blog &lt;a href="http://blogs.msdn.com/b/friis/archive/2009/12/31/things-to-check-when-kerberos-authentication-fails-using-iis-ie.aspx"&gt;"Things to check when Kerberos authentication fails using IIS/IE"&lt;/a&gt;, we provided a couple of links to troubleshooting pages. Unfortunately, these troubleshooting pages were lacking some features and, for this reason, our team has built its own authentication test page. Currently, our diagnosis page provides details regarding the following items: &lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;authentication method being used &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;thread (request) and process identity for the application pool hosting the web application &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;SID and group membership &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;impersonation level &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;dump of server variables &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;test form &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;Here's a typical output of our diagnosis page: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-11-43-metablogapi/5556.010813_5F00_1627_5F00_ASPNETAuthe1.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;Notes : &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left: 36pt;"&gt;&lt;span style="color: #1f497d;"&gt;Authentication Method - authentication method used (Basic, NTLM, Kerberos, SSL&amp;hellip;etc)&lt;br /&gt;Identity &amp;ndash; current authenticated user &lt;br /&gt;Windows identity &amp;ndash; windows identity for the current request. In this example, we can see that user is authenticated but impersonation is not enabled&lt;br /&gt;ImpersonationLevel &amp;ndash; this allows to see if current settings allow impersonation and delegation (if delegation is enabled, ImpersonationLevel=Delegation) &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;The diagnosis page also includes a couple of images (IIS8 logo) and a form. The images can be used to check client's behavior regarding request/session based authentication (using a network or &lt;a href="http://blogs.msdn.com/b/friis/archive/2012/09/27/new-release-of-httpreplay-available-april-2012.aspx"&gt;HTTPREPLAY&lt;/a&gt; trace, you can check if HTTP authentication is request or session based. Using this method, I discovered last month that Kerberos authentication is now session based by default on IIS8/Windows Server 2012!). &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;The last item in the diagnosis page is a simple form element which can be used to check if pre-authentication is used (in this case, a network trace will show a 0 Content-Length header upon POST). &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;I hope the Authentication test page will allow you to resolve most authentication issues you may get in the future! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #1f497d;"&gt;Emmanuel Boersma&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10383192" width="1" height="1"&gt;</content><author><name>friis[at]microsoft.com</name><uri>http://blogs.msdn.com/friis_4000_microsoft.com/ProfileUrlRedirect.ashx</uri></author><category term="Kerberos NTLM Basic Authentication Identity Credentials Impersonation" scheme="http://blogs.msdn.com/b/friis/archive/tags/Kerberos+NTLM+Basic+Authentication+Identity+Credentials+Impersonation/" /></entry><entry><title>Event ID 5188 – Source Microsoft-Windows-WAS : WAS ne démarre pas car le répertoire %SystemDrive%\inetpub\temp\appPools n'est pas trouvable</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/friis/archive/2013/01/07/event-id-5188-source-microsoft-windows-was-was-ne-d-233-marre-pas-car-le-r-233-pertoire-systemdrive-inetpub-temp-apppools-n-est-pas-trouvable.aspx" /><id>http://blogs.msdn.com/b/friis/archive/2013/01/07/event-id-5188-source-microsoft-windows-was-was-ne-d-233-marre-pas-car-le-r-233-pertoire-systemdrive-inetpub-temp-apppools-n-est-pas-trouvable.aspx</id><published>2013-01-07T15:13:00Z</published><updated>2013-01-07T15:13:00Z</updated><content type="html">&lt;p&gt;Le service WAS (Windows Process Activation Service) g&amp;eacute;n&amp;egrave;re un fichier de configuration temporaire pour chaque Application Pool qu'il va stocker dans le r&amp;eacute;pertoire "%SystemDrive%\inetpub\temp\appPools". Il est possible que vous obteniez le message d'erreur suivant si le r&amp;eacute;pertoire a &amp;eacute;t&amp;eacute; d&amp;eacute;plac&amp;eacute; et/ou que les permissions ne sont pas correctement positionn&amp;eacute;es :&lt;/p&gt;
&lt;p&gt;Event ID 5188 - Source Microsoft-Windows-WAS&lt;br /&gt;The directory specified for the temporary application pool config files is either missing or is not accessible by the Windows Process Activation Service. Please specify an existing directory and/or ensure that it has proper access flags. The data field contains the error number.&lt;/p&gt;
&lt;p&gt;Pour corriger ce probl&amp;egrave;me vous devez vous assurer que le r&amp;eacute;pertoire AppPools rencontre les pr&amp;eacute;requis suivants&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Le r&amp;eacute;pertoire doit exister&lt;/li&gt;
&lt;li&gt;Le r&amp;eacute;pertoire ne peut pas &amp;ecirc;tre un chemin UNC&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Le r&amp;eacute;pertoire doit &amp;ecirc;tre accessible par WAS et avoir les permissions suivantes&amp;nbsp;:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;SYSTEM: Full Access&lt;/li&gt;
&lt;li&gt;Administrators: Full Access&lt;/li&gt;
&lt;li&gt;IIS_IUSRS: Read&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si vous d&amp;eacute;sirez plus de d&amp;eacute;tails sur le sujet, vous pouvez consulter l'article technet suivant (anglais uniquement)&amp;nbsp;: &lt;a href="http://technet.microsoft.com/en-us/library/cc734935(WS.10).aspx"&gt;http://technet.microsoft.com/en-us/library/cc734935(WS.10).aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Sylvain Lecerf&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10382839" width="1" height="1"&gt;</content><author><name>friis[at]microsoft.com</name><uri>http://blogs.msdn.com/friis_4000_microsoft.com/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>L’authentification intégrée (Kerberos) résulte en une erreur avec une application JAVA (GSSException: No valid credentials provided (Mechanism level: Fail to create credential. (63)) - No service creds)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/friis/archive/2013/01/07/l-authentification-int-233-gr-233-e-kerberos-r-233-sulte-en-une-erreur-avec-une-application-java-gssexception-no-valid-credentials-provided-mechanism-level-fail-to-create-credential-63-no-service-creds.aspx" /><id>http://blogs.msdn.com/b/friis/archive/2013/01/07/l-authentification-int-233-gr-233-e-kerberos-r-233-sulte-en-une-erreur-avec-une-application-java-gssexception-no-valid-credentials-provided-mechanism-level-fail-to-create-credential-63-no-service-creds.aspx</id><published>2013-01-07T15:08:00Z</published><updated>2013-01-07T15:08:00Z</updated><content type="html">&lt;p&gt;&lt;span style="font-size: small;"&gt;Il est possible que certains pr&amp;eacute;requis soient n&amp;eacute;cessaires pour faire fonctionner l'authentification Kerberos avec par exemple une application de type JAVA.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Le sympt&amp;ocirc;me est g&amp;eacute;n&amp;eacute;ralement le suivant&amp;nbsp;: l'authentification Kerberos fonctionne parfaitement sur l'ensemble du site sauf quand vous acc&amp;eacute;dez &amp;agrave; une application particuli&amp;egrave;re (type JAVA). Vous &amp;ecirc;tes prompt&amp;eacute; et le site n'est pas accessible.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;L'application peut renvoyer l'erreur suivante&amp;nbsp;: GSSException: No valid credentials provided (Mechanism level: Fail to create credential. (63)) - No service creds&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Pour mon client qui a rencontr&amp;eacute; ce probl&amp;egrave;me, il a fallu appliquer les trois actions suivantes pour corriger le probl&amp;egrave;me :&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;span style="font-size: small;"&gt;Activer l'impersonnation&lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;span style="font-size: small;"&gt;Il suffit d'ajouter ce qui suit dans le Web.Config de votre application&amp;nbsp;:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&amp;lt;system.web&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;identity impersonate="true" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&amp;lt;/system.web&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;span style="font-size: small;"&gt;R&amp;eacute;f&amp;eacute;rencer le bon contr&amp;ocirc;leur de domaine dans le fichier KRB5.ini :&lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;"&gt;Ce fichier est utilis&amp;eacute; pour interagir avec des impl&amp;eacute;mentations Kerberos tierce&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;span style="font-size: small;"&gt;Activer la cl&amp;eacute; AllowTgtSessionKey&amp;nbsp;: &lt;a href="http://support.microsoft.com/kb/837361/fr"&gt;http://support.microsoft.com/kb/837361/fr&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;"&gt;Cette cl&amp;eacute; permet l'&amp;eacute;change de ticket entre diff&amp;eacute;rent monde (Windows, JAVA, Samba&amp;hellip;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;"&gt;Elle est d&amp;eacute;sactiv&amp;eacute;e par d&amp;eacute;faut pour des raisons de s&amp;eacute;curit&amp;eacute;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;"&gt;Cette cl&amp;eacute; est enti&amp;egrave;rement utilisable sous W2K8 &amp;amp; W2K8 R2&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;En esp&amp;eacute;rant que cet article vous sera utile.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Sylvain Lecerf &amp;amp; L'&amp;eacute;quipe de Support IIS Microsoft France&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10382835" width="1" height="1"&gt;</content><author><name>friis[at]microsoft.com</name><uri>http://blogs.msdn.com/friis_4000_microsoft.com/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>Debug Diagnostic 1.2 – Créer une règle en mode Crash suite à une exception</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/friis/archive/2013/01/07/debug-diagnostic-1-2-cr-233-er-une-r-232-gle-en-mode-crash-suite-224-une-exception.aspx" /><id>http://blogs.msdn.com/b/friis/archive/2013/01/07/debug-diagnostic-1-2-cr-233-er-une-r-232-gle-en-mode-crash-suite-224-une-exception.aspx</id><published>2013-01-07T15:05:00Z</published><updated>2013-01-07T15:05:00Z</updated><content type="html">&lt;p&gt;Cet article d&amp;eacute;taille le plan d'action &amp;agrave; mettre en place pour cr&amp;eacute;er une r&amp;egrave;gle dans Debug Diagnostic 1.2 afin d'automatiser la g&amp;eacute;n&amp;eacute;ration d'un dump lorsqu'une exception est lev&amp;eacute;e au sein d'un processus relatif &amp;agrave; IIS (par exemple un processus "W3WP.exe").&lt;/p&gt;
&lt;p&gt;Ce plan d'action est applicable lorsque votre processus "W3WP.exe" plante ce qui, dans le contexte d'IIS, sous-entend que le processus est tu&amp;eacute; ou red&amp;eacute;marr&amp;eacute;, suite &amp;agrave; une exception sp&amp;eacute;cifique (du type Second Chance). Ceci implique donc un arr&amp;ecirc;t du processus et s'il est relanc&amp;eacute;, un changement de PID. Il faut bien faire attention &amp;agrave; ne pas confondre Crash et Hang, car configurer une r&amp;egrave;gle en mode Crash pour un Hang ne permettra pas la g&amp;eacute;n&amp;eacute;ration de dumps.&lt;br /&gt;Ce plan d'action peut &amp;eacute;galement &amp;ecirc;tre utilis&amp;eacute; pour simplement capturer une exception qui n'est pas fatale au processus (du type First Chance).&lt;/p&gt;
&lt;p style="background: #dbe5f1;"&gt;&lt;strong&gt;&lt;em&gt;Plan d'action &lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Debug Diagnostic 1.2 est t&amp;eacute;l&amp;eacute;chargeable &amp;agrave; l'adresse suivante : &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=26798"&gt;http://www.microsoft.com/download/en/details.aspx?id=26798&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Une fois le logiciel install&amp;eacute; et lanc&amp;eacute; sur le serveur IIS, l'assistant "Select Rule Type" se charge&lt;/li&gt;
&lt;li&gt;Choisissez "Crash" puis cliquez sur "Suivant &amp;gt;"&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-11-43-metablogapi/7823.010713_5F00_1505_5F00_DebugDiagno1.png" alt="" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Dans la fen&amp;ecirc;tre "Select Target Type"&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Choisissez "A specific IIS web application pool", puis cliquez sur "Suivant &amp;gt;"&lt;/div&gt;
&lt;p&gt;Cela aura pour cons&amp;eacute;quence de g&amp;eacute;n&amp;eacute;rer un dump uniquement sur le processus W3WP.exe correspondant &amp;agrave; votre Application Pool.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Vous pouvez s&amp;eacute;lectionner "All IIS/COM+ related processes" si vous voulez surveiller tous les processus li&amp;eacute;s &amp;agrave; IIS.&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Vous pouvez &amp;eacute;galement s&amp;eacute;lectionner "A specific process" pour surveiller toutes les instances d'un processus ou une unique instance (un processus sp&amp;eacute;cifique avec un PID sp&amp;eacute;cifique).&lt;/div&gt;
&lt;p&gt;L'inconv&amp;eacute;nient de "A specific process" pour une unique instance est qu'il faut recr&amp;eacute;er la r&amp;egrave;gle &amp;agrave; chaque red&amp;eacute;marrage du processus &amp;eacute;tant donn&amp;eacute; qu'il va changer de PID.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-11-43-metablogapi/3286.010713_5F00_1505_5F00_DebugDiagno2.png" alt="" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;S&amp;eacute;lectionnez l'application pool rencontrant le probl&amp;egrave;me de crash, puis cliquez sur "Suivant &amp;gt;"&lt;/div&gt;
&lt;p style="margin-left: 108pt;"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-11-43-metablogapi/7384.010713_5F00_1505_5F00_DebugDiagno3.png" alt="" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Ajoutez l'exception que vous cherchez &amp;agrave; capturer (ou celle mentionn&amp;eacute;e par l'ing&amp;eacute;nieur support)&amp;nbsp;comme vous pouvez le voir dans le screenshot ci-dessous :&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;&lt;span style="text-decoration: underline;"&gt;&lt;em&gt;Remarque&lt;/em&gt;&lt;/span&gt;&amp;nbsp;:&lt;/strong&gt; Le champ ".Net Exception Type" est Case Sensitive. Il faut donc faire attention lorsque vous rentrez le nom de l'exception&lt;/div&gt;
&lt;p style="margin-left: 72pt;"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-11-43-metablogapi/8880.010713_5F00_1505_5F00_DebugDiagno4.png" alt="" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Ajoutez le breakpoint comme vous pouvez le voir dans le screenshot ci-dessous&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Ceci permet de g&amp;eacute;n&amp;eacute;rer un dump d&amp;egrave;s que la commande "TerminateProcess" est remont&amp;eacute;e dans un processus sans attendre son arr&amp;ecirc;t complet&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-11-43-metablogapi/6724.010713_5F00_1505_5F00_DebugDiagno5.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Cliquez sur "Suivant &amp;gt;"&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-11-43-metablogapi/3000.010713_5F00_1505_5F00_DebugDiagno6.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Choisissez un nom et emplacement pour les dumps, puis cliquez sur "Suivant &amp;gt;"&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Mettre ces dumps sur un autre emplacement que le C:\ ne pose pas de probl&amp;egrave;me&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;span style="text-decoration: underline;"&gt;V&amp;eacute;rifiez qu'il y ait suffisamment d'espace disque disponible car la taille d'un dump d'un processus est &amp;eacute;gale &amp;agrave; la taille consomm&amp;eacute;e en m&amp;eacute;moire par ce dernier &lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-11-43-metablogapi/5228.010713_5F00_1505_5F00_DebugDiagno7.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Dans la fen&amp;ecirc;tre "Rule Completed", s&amp;eacute;lectionnez "Activate the rule now", puis cliquez sur "Terminer"&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;La r&amp;egrave;gle est maintenant configur&amp;eacute;e et pr&amp;ecirc;te &amp;agrave; g&amp;eacute;n&amp;eacute;rer des dumps&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-11-43-metablogapi/3582.010713_5F00_1505_5F00_DebugDiagno8.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;V&amp;eacute;rifiez que son statut est "Active"&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Si &amp;ccedil;a n'est pas le cas, le service "DbgSvc" n'est surement pas d&amp;eacute;marr&amp;eacute;&lt;/li&gt;
&lt;li&gt;Allez dans "Outils d'administration &amp;gt; Services" et d&amp;eacute;marrez le&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Quand un dump sera g&amp;eacute;n&amp;eacute;r&amp;eacute;, vous verrez la colonne "UserDump Count" s'incr&amp;eacute;menter&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Les dumps sont situ&amp;eacute;s par d&amp;eacute;faut dans "C:\Program Files\DebugDiag\Logs\Crash rule for all IIS_COM+ related processes" ou dans "C:\Program Files\DebugDiag\Logs\Nom_De_La_R&amp;egrave;gle "&lt;/p&gt;
&lt;p&gt;Pour retourner &amp;agrave; l'article d'introduction sur Debug Diagnostic 1.2 cliquez ICI.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;En esp&amp;eacute;rant que cet article vous sera utile.&lt;/p&gt;
&lt;p&gt;@ Bient&amp;ocirc;t&lt;/p&gt;
&lt;p&gt;Sylvain Lecerf et L'&amp;eacute;quipe de support IIS Microsoft France&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10382833" width="1" height="1"&gt;</content><author><name>friis[at]microsoft.com</name><uri>http://blogs.msdn.com/friis_4000_microsoft.com/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>UrlScan RemoveServerHeader Property Vs HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parpameters\DisableServerHeader</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/friis/archive/2013/01/07/urlscan-removeserverheader-property-vs-hklm-system-currentcontrolset-services-http-parpameters-disableserverheader.aspx" /><link rel="enclosure" type="text/plain" length="13420" href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-38-28-28/UrlScan.txt" /><id>http://blogs.msdn.com/b/friis/archive/2013/01/07/urlscan-removeserverheader-property-vs-hklm-system-currentcontrolset-services-http-parpameters-disableserverheader.aspx</id><published>2013-01-07T14:53:00Z</published><updated>2013-01-07T14:53:00Z</updated><content type="html">&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1f497d;"&gt;Cela fait plusieurs fois qu'une incompr&amp;eacute;hension r&amp;eacute;sulte en l'ouverture d'un incident au support Microsoft. Il est av&amp;eacute;r&amp;eacute; que la cl&amp;eacute; "&lt;span style="color: black;"&gt;HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parpameters\DisableServerHeader&lt;span style="color: #1f497d;"&gt;" est sens&amp;eacute;e supprimer le header "&lt;span style="color: black;"&gt;Server&lt;span style="color: #1f497d;"&gt;" renvoy&amp;eacute; par IIS. Or, cette cl&amp;eacute; ne permet pas de supprimer les headers positionn&amp;eacute;s au niveau User-Mode mais seulement ceux positionn&amp;eacute;s au niveau du driver HTTP.sys. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1f497d;"&gt;De mani&amp;egrave;re plus pr&amp;eacute;cise, lorsqu'une requ&amp;ecirc;te arrive sur un serveur IIS, elle est d'abord prise en charge par le driver HTTP.sys qui est le driver Kernel de IIS qui g&amp;egrave;re toutes les connexions entrantes sur le serveur. En fonction de la requ&amp;ecirc;te, elle peut &amp;ecirc;tre soit directement trait&amp;eacute;e par HTTP.sys, soit &amp;ecirc;tre envoy&amp;eacute;e vers le User-Mode de IIS (processus W3WP.exe pour simplifier). Quand elle passe par le User-Mode, le header renvoy&amp;eacute; est "&lt;span style="color: black;"&gt;Server: Microsoft-IIS/7.5&lt;span style="color: #1f497d;"&gt;". C'est ce header que la plupart des gens cherchent &amp;agrave; supprimer. Cependant, lorsqu'elle passe uniquement par le Kernel-Mode, le header qui est normalement renvoy&amp;eacute; est "&lt;span style="color: black;"&gt;Server: Microsoft-HTTPAPI/2.0&lt;span style="color: #1f497d;"&gt;". En positionnant la cl&amp;eacute; "&lt;span style="color: black;"&gt;DisableServerHeader&lt;span style="color: #1f497d;"&gt;" &amp;agrave; 1, c'est ce header que vous allez supprimer. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1f497d;"&gt;Pour supprimer le header "&lt;span style="color: black;"&gt;Server: Microsoft-IIS/7.5&lt;span style="color: #1f497d;"&gt;", il faut utiliser &lt;a href="http://www.iis.net/download/UrlScan"&gt;UrlScan&lt;/a&gt;. UrlScan est un excellent outil pour renforcer la s&amp;eacute;curit&amp;eacute; d'un serveur web et g&amp;eacute;n&amp;eacute;ralement la suppression de ce header fait partie de cette optique. Il suffit donc de positionner le param&amp;egrave;tre RemoveServerHeader &amp;agrave; 1 comme ci-dessous dans le fichier UrlScan.ini (C:\Windows\System32\inetsrv\urlscan) :&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Consolas; font-size: 9pt;"&gt;RemoveServerHeader=1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; If 1, remove the 'Server' header from&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; response.&amp;nbsp; The default is 0.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1f497d;"&gt;&lt;br /&gt;Toutefois, si actuellement vous n'utilisez pas UrlScan, il est possible que la configuration par d&amp;eacute;faut modifie le comportement de votre serveur et emp&amp;ecirc;che ainsi le bon fonctionnement de certaines applications. Ayant d&amp;eacute;j&amp;agrave; rencontr&amp;eacute; ce probl&amp;egrave;me, vous trouverez&amp;nbsp;&amp;agrave; la fin de cet article&amp;nbsp;le fichier UrlScan.txt (&amp;agrave; renommer en UrlScan.ini) qui devrait avoir pour cons&amp;eacute;quence de "d&amp;eacute;sactiver" l'ensemble des param&amp;egrave;tres d'UrlScan sauf le RemoveServerHeader. &lt;/span&gt;&lt;span style="color: #1f497d;"&gt;Si vous le d&amp;eacute;sirez, vous pouvez tester ce fichier et v&amp;eacute;rifier qu'il correspond bien &amp;agrave; vos attentes.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note 1 : Avant d'effectuer le test : &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style="text-align: justify;"&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;Quelques modifications vont devoir &amp;ecirc;tre apport&amp;eacute;es au fichier. En particulier les points 8 &amp;amp; 10 qu'il vous faudra adapter &amp;agrave; vos besoins. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;Pensez &amp;agrave; sauvegarder le fichier UrlScan.ini d'origine afin de pouvoir effectuer rapidement un retour arri&amp;egrave;re si quelque chose ne se passe pas correctement. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;Note 2 :&lt;/strong&gt; Je vous conseille de red&amp;eacute;marrer le serveur apr&amp;egrave;s avoir remplac&amp;eacute; le fichier UrlScan.ini afin d'&amp;ecirc;tre certain que l'ensemble des param&amp;egrave;tres ont bien &amp;eacute;t&amp;eacute; appliqu&amp;eacute;s. &lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: red;"&gt;&lt;strong&gt;Avertissement :&lt;/strong&gt;Je tiens &amp;agrave; souligner que d&amp;eacute;sactiver l'ensemble des fonctionnalit&amp;eacute;s n'est pas une id&amp;eacute;e judicieuse pour la s&amp;eacute;curit&amp;eacute; du serveur IIS. &lt;span style="color: #1f497d;"&gt;Cette proc&amp;eacute;dure n'est fournie qu'&amp;agrave; titre de test afin de v&amp;eacute;rifier la suppression du header "&lt;span style="color: black;"&gt;Server: Microsoft-IIS/7.5&lt;span style="color: #1f497d;"&gt;" sans impacter le fonctionnement du serveur IIS. Il n'est bien entendu pas recommand&amp;eacute; de faire tourner un serveur IIS en production avec cette configuration d'UrlScan. Si vous d&amp;eacute;cidez d'utiliser cette proc&amp;eacute;dure en production et qu'un incident survient &amp;agrave; cause de cette derni&amp;egrave;re, &lt;strong&gt;le support Microsoft ne pourra pas en &amp;ecirc;tre tenu responsable&lt;/strong&gt;. &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #1f497d;"&gt;En compl&amp;eacute;ment, voici quelques explications sur ce que j'ai fait au niveau de la configuration d'UrlScan : &lt;/span&gt;&lt;/p&gt;
&lt;ul style="text-align: justify;"&gt;
&lt;li style="text-align: justify;"&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;1- UseAllowVerbs &lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1c9444;"&gt;If 1, use [AllowVerbs] section, else use the [DenyVerbs] section.&amp;nbsp;&amp;nbsp; The default is 1.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #1f497d;"&gt;Si ce param&amp;egrave;tre est activ&amp;eacute;, UrlScan ne va autoriser que les verbes pr&amp;eacute;sents dans la section [AllowVerbs]. Afin d'&amp;eacute;viter de lister tous les verbes qui existent dans cette section, j'ai positionn&amp;eacute; le param&amp;egrave;tre &amp;agrave; 0 et comment&amp;eacute; l'ensemble des verbes contenus dans la section [DenyVerbs]. Ainsi nous laisserons passer tous les verbes qui ne sont pas list&amp;eacute;s, et comme il n'y en a pas, on laissera tout passer. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style="text-align: justify;"&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;2- UseAllowExtensions &lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1c9444;"&gt;If 1, use [AllowExtensions] section, else use the [DenyExtensions] section. The default is 0.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #1f497d;"&gt;M&amp;ecirc;me principe que le pr&amp;eacute;c&amp;eacute;dent, param&amp;egrave;tre &amp;agrave; 0 et on commente ce qu'il y a dans la section [DenyExtensions]. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style="text-align: justify;"&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;3- NormalizeUrlBeforeScan &lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1c9444;"&gt;If 1, canonicalize URL before processing. The default is 1.&amp;nbsp; Note that setting this to 0 will make checks based on extensions, and the URL unreliable and is therefore not recommend other than for testing.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #1f497d;"&gt;Le principe est de d&amp;eacute;coder une URL qui a &amp;eacute;t&amp;eacute; encod&amp;eacute;e avant de l'analyser. Par exemple, le caract&amp;egrave;re d'espacement sera encod&amp;eacute; avec un %20. Une URL du type "&lt;a href="http://myserver/My%20Dir/My%20File.htm"&gt;http://myserver/My%20Dir/My%20File.htm&lt;/a&gt;" sera d&amp;eacute;cod&amp;eacute;e par UrlScan comme "&lt;a href="http://myserver/My%20Dir/My%20File.htm"&gt;http://myserver/My Dir/My File.htm&lt;/a&gt;" et une fois cette op&amp;eacute;ration effectu&amp;eacute;e, UrlScan l'analysera. Laisser ce param&amp;egrave;tre &amp;agrave; 1 ne devrait pas impacter l'application. Cependant, j'ai pass&amp;eacute; le param&amp;egrave;tre &amp;agrave; 0 car cela devrait arr&amp;ecirc;ter le proc&amp;eacute;d&amp;eacute; de d&amp;eacute;codage qui est inutile dans le sc&amp;eacute;nario que vous souhaitez mettre en place. On gagnera certainement en temps de traitement. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style="text-align: justify;"&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;4- VerifyNormalization &lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1c9444;"&gt;If 1, canonicalize URL twice and reject request if a change occurs.&amp;nbsp; The default is 1.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #1f497d;"&gt;M&amp;ecirc;me principe que pr&amp;eacute;c&amp;eacute;demment, sauf qu'ici une deuxi&amp;egrave;me tentative de d&amp;eacute;codage est effectu&amp;eacute;e au cas o&amp;ugrave; un &amp;eacute;l&amp;eacute;ment de l'URL serait doublement encod&amp;eacute;. Si &amp;agrave; la deuxi&amp;egrave;me tentative de d&amp;eacute;codage l'URL est la m&amp;ecirc;me, l'acc&amp;egrave;s est autoris&amp;eacute;, sinon la requ&amp;ecirc;te est rejet&amp;eacute;e. J'ai mis ce param&amp;egrave;tre &amp;agrave; 0 &amp;eacute;tant donn&amp;eacute; que la premi&amp;egrave;re v&amp;eacute;rification est d&amp;eacute;sactiv&amp;eacute;e. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style="text-align: justify;"&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;5- AllowHighBitCharacters &lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1c9444;"&gt;If 1, allow high bit (ie. UTF8 or MBCS) characters in URL.&amp;nbsp; The default is 0.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #1f497d;"&gt;Si ce param&amp;egrave;tre est &amp;agrave; 0, il va bloquer les requ&amp;ecirc;tes qui contiennent un caract&amp;egrave;re non-ASCII. Cela peut avoir un impact pour des fichiers tout &amp;agrave; fait normaux comme par exemple ceux avec des noms non-Anglais. Je l'ai pass&amp;eacute; &amp;agrave; 1 pour le d&amp;eacute;sactiver. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style="text-align: justify;"&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;6- AllowDotInPath &lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1c9444;"&gt;If 1, allow dots that are not file extensions. The default is 0. Note that setting this property to 1 will make checks based on extensions unreliable and is therefore not recommended other than for testing.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #1f497d;"&gt;Si ce param&amp;egrave;tre est &amp;agrave; 0, il va bloquer les requ&amp;ecirc;tes qui contiennent plusieurs points (.) afin d'&amp;eacute;viter des tentatives d'acc&amp;egrave;s &amp;agrave; des mauvais fichiers masqu&amp;eacute;s dans une URL vers un fichier tout &amp;agrave; fait s&amp;ucirc;r. Par exemple : &lt;a href="http://servername/BadFile.exe/SafeFile.htm"&gt;http://servername/&lt;span style="background-color: yellow;"&gt;BadFile.exe&lt;/span&gt;/SafeFile.htm&lt;/a&gt;.&amp;nbsp;&lt;span style="color: black;"&gt;&lt;span style="color: #1f497d;"&gt;Je l'ai pass&amp;eacute; &amp;agrave; 1 pour le d&amp;eacute;sactiver. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style="text-align: justify;"&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;7- RemoveServerHeader &lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1f497d;"&gt;Je vais passer sur ce param&amp;eacute;trage car vous savez parfaitement ce qu'il implique. Je l'ai positionn&amp;eacute; &amp;agrave; 1 pour l'activer. &lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style="text-align: justify;"&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;8- EnableLogging &lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1c9444;"&gt;If 1, log UrlScan activity.&amp;nbsp; The default is 1.&amp;nbsp; Changes to this property will not take effect until UrlScan is restarted.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #1f497d;"&gt;Par d&amp;eacute;faut UrlScan g&amp;eacute;n&amp;egrave;re un fichier de log de toutes les requ&amp;ecirc;tes qui ont &amp;eacute;t&amp;eacute; bloqu&amp;eacute;es dans "&lt;span style="color: black;"&gt;%WINDIR%\System32\inetsrv\URLScan&lt;span style="color: #1f497d;"&gt;". Je vous recommande de le laisser activ&amp;eacute; dans un premier temps afin de v&amp;eacute;rifier qu'aucune requ&amp;ecirc;te n'est bloqu&amp;eacute;e par UrlScan. Je l'ai toutefois d&amp;eacute;sactiv&amp;eacute; dans le fichier afin qu'il ne soit pas oubli&amp;eacute; &amp;agrave; 1 inutilement. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style="text-align: justify;"&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;9- PerProcessLogging &lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1c9444;"&gt;This property is deprecated for UrlScan 3.0 and later.&amp;nbsp; UrlScan 3.0 and later can safely log output from multiple processes to the same log file.&amp;nbsp; Changes to this property will not take effect until UrlScan is restarted.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #1f497d;"&gt;Comme indiqu&amp;eacute; ce param&amp;egrave;tre est d&amp;eacute;pr&amp;eacute;ci&amp;eacute; &amp;agrave; partir d'UrlScan 3.0. Je l'ai donc laiss&amp;eacute; d&amp;eacute;sactiv&amp;eacute;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style="text-align: justify;"&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;10- AllowLateScanning &lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1c9444;"&gt;If 1, then UrlScan will load as a low priority filter.&amp;nbsp; The default is 0.&amp;nbsp; Note that this setting should only be used in the case where there another installed filter is modifying the URL and you wish to have UrlScan apply its rules to the rewritten URL.&amp;nbsp; Changes to this property will not take effect until UrlScan is restarted.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #1f497d;"&gt;Ici, il s'agit de d&amp;eacute;finir la priorit&amp;eacute; &amp;agrave; apporter au filtre ISAPI UrlScan. Si vous laissez le param&amp;egrave;tre &amp;agrave; 0, ce filtre ISAPI sera ex&amp;eacute;cut&amp;eacute; en premier. Si vous passez le param&amp;egrave;tre &amp;agrave; 1, il passera apr&amp;egrave;s que des filtres ISAPI comme les FPSE ou URLRewritte aient modifi&amp;eacute;s la requ&amp;ecirc;te. C'est donc &amp;agrave; vous de d&amp;eacute;finir si ce param&amp;egrave;tre doit &amp;ecirc;tre &amp;agrave; 0 ou &amp;agrave; 1. J'ai laiss&amp;eacute; la valeur par d&amp;eacute;faut dans le fichier qui est 0. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style="text-align: justify;"&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;11- PerDayLogging &lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1c9444;"&gt;If 1, UrlScan will produce a new log each day with activity in the form 'UrlScan.010101.log'. If 0, UrlScan will log activity to urlscan.log.&amp;nbsp; The default is 1.&amp;nbsp; Changes to this setting will not take effect until UrlScan is restarted.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #1f497d;"&gt;Ce param&amp;egrave;tre permet &amp;agrave; UrlScan de g&amp;eacute;n&amp;eacute;rer un fichier de log par jour. J'ai positionn&amp;eacute; le param&amp;egrave;tre &amp;agrave; 0. Normalement vous ne devriez pas avoir de logs g&amp;eacute;n&amp;eacute;r&amp;eacute;s, cependant si cela &amp;eacute;t&amp;eacute; le cas, on &amp;eacute;vitera d'avoir plein de petits fichiers. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style="text-align: justify;"&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;12- UseFastPathReject &lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1c9444;"&gt;If 1, then UrlScan will not use the RejectResponseUrl.&amp;nbsp; On IIS versions less than 6.0, this will also prevent IIS from writing rejected requests to the W3SVC log.&amp;nbsp; UrlScan will log rejected requests regardless of this setting.&amp;nbsp; The default is 0.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #1f497d;"&gt;Que ce param&amp;egrave;tre soit &amp;agrave; 0 ou &amp;agrave; 1, cela ne changera rien pour l'application &amp;eacute;tant donn&amp;eacute; que celui-ci s'applique uniquement une fois qu'il a &amp;eacute;t&amp;eacute; d&amp;eacute;cid&amp;eacute; de bloquer la requ&amp;ecirc;te. La diff&amp;eacute;rence principale r&amp;eacute;side dans la mani&amp;egrave;re dont va &amp;ecirc;tre bloqu&amp;eacute;e l'URL. Je vous recommande de laisser ce param&amp;egrave;tre &amp;agrave; 0 car si une requ&amp;ecirc;te est rejet&amp;eacute;e, vous obtiendrez certainement plus d'informations que si le param&amp;egrave;tre est &amp;agrave; 1 pour comprendre le pourquoi du blocage. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style="text-align: justify;"&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;13- LogLongUrls &lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1c9444;"&gt;This property is deprecated for UrlScan 3.0 and later. UrlScan 3.0 and later will always include the complete URL in its log file.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #1f497d;"&gt;Comme indiqu&amp;eacute; ce param&amp;egrave;tre est d&amp;eacute;pr&amp;eacute;ci&amp;eacute; &amp;agrave; partir d'UrlScan 3.0. Je l'ai donc laiss&amp;eacute; d&amp;eacute;sactiv&amp;eacute;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style="text-align: justify;"&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;&lt;strong&gt;14- UnescapeQueryString &lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1c9444;"&gt;If 1, UrlScan will perform two passes on each query string scan, once with the raw query string and once after unescaping it. If 0, UrlScan will only look at the raw query string as sent by the client.&amp;nbsp; The default is 1. Note that if this property is set to 0, then checks based on the query string will be unreliable.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #1f497d;"&gt;Comme le but n'est pas de scanner de la mani&amp;egrave;re la plus s&amp;ucirc;re possible les requ&amp;ecirc;tes avec query string mais de n'avoir que le param&amp;egrave;tre RemoveServerHeader d'activ&amp;eacute;, j'ai d&amp;eacute;sactiv&amp;eacute; ce param&amp;egrave;tre en le passant &amp;agrave; 0. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1f497d;"&gt;J'ai ensuite comment&amp;eacute; le contenu des sections pour lesquelles nous n'avons pas fait de traitement : &lt;/span&gt;&lt;/p&gt;
&lt;ul style="text-align: justify;"&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;RequestLimits &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;DenyHeaders &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;DenyUrlSequences &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;DenyQueryStringSequences &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1f497d;"&gt;Les param&amp;egrave;tres restants peuvent &amp;ecirc;tre ignor&amp;eacute;s car inutilis&amp;eacute;s ou inutiles dans le cas d'une d&amp;eacute;sactivation compl&amp;egrave;te des tous les param&amp;egrave;tres d'UrlScan sauf le RemoveServerHeader: &lt;/span&gt;&lt;/p&gt;
&lt;ul style="text-align: justify;"&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;RejectResponseUrl= &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;span style="color: #1f497d;"&gt;LoggingDirectory=Logs &lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;Ici vous pouvez changer l'emplacement par d&amp;eacute;faut des logs si vous le d&amp;eacute;sirez &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;AlternateServerName= &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: #1f497d;"&gt;RuleList &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="text-align: justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="text-align: justify;"&gt;&lt;span style="color: #1f497d;"&gt;En esp&amp;eacute;rant que cet article vous soit utile.&lt;br /&gt;Sylvain Lecerf&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10382828" width="1" height="1"&gt;</content><author><name>friis[at]microsoft.com</name><uri>http://blogs.msdn.com/friis_4000_microsoft.com/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>ASP.NET &amp; consommation mémoire au démarrage du processus W3WP.exe</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/friis/archive/2013/01/02/asp-net-amp-consommation-m-233-moire-au-d-233-marrage-du-processus-w3wp-exe.aspx" /><id>http://blogs.msdn.com/b/friis/archive/2013/01/02/asp-net-amp-consommation-m-233-moire-au-d-233-marrage-du-processus-w3wp-exe.aspx</id><published>2013-01-02T13:27:00Z</published><updated>2013-01-02T13:27:00Z</updated><content type="html">&lt;p&gt;Une question revient r&amp;eacute;guli&amp;egrave;rement au support Microsoft au sujet de la consommation m&amp;eacute;moire d'ASP.NET au d&amp;eacute;marrage d'un processus W3WP.exe.&lt;br /&gt;En effet, ASP.NET va se r&amp;eacute;server une certaine quantit&amp;eacute; de m&amp;eacute;moire virtuelle d&amp;egrave;s que le processus d&amp;eacute;marre (Pour comprendre la diff&amp;eacute;rence entre m&amp;eacute;moire virtuelle et m&amp;eacute;moire priv&amp;eacute;e je vous invite &amp;agrave; lire l'article suivant&amp;nbsp;: &lt;a href="http://blogs.msdn.com/b/friis/archive/2008/10/13/m-moire-recyclage-sous-iis-6.aspx"&gt;http://blogs.msdn.com/b/friis/archive/2008/10/13/m-moire-recyclage-sous-iis-6.aspx&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;La taille de cette allocation m&amp;eacute;moire varie en fonction de l'architecture x86/x64 et de la version du Framework ASP.NET.&lt;br /&gt;La r&amp;eacute;partition est la suivante&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ASP.NET 2.0 x86 = 64 MB par processeur pour le "small object segment" et 32 MB par processeur pour le "large object segment", soit 96 MB par processeur.&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;ASP.NET 2.0 x64 = 512 MB par processeur pour le "small object segment" et 128 MB par processeur pour le "large object segment", soit 640 MB par processeur.&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;ASP.NET 4.0 x86 = 64 MB par processeur pour le "small object segment" et 32 MB par processeur pour le "large object segment", soit 96 MB par processeur.&lt;/li&gt;
&lt;li&gt;ASP.NET 4.0 x64 = 1024 MB par processeur pour le "small object segment" et 256 MB par processeur pour le "large object segment", soit 1280 MB par processeur.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Les Frameworks 3.0 &amp;amp; 3.5 ne sont pas mentionn&amp;eacute;s car ils reposent enti&amp;egrave;rement sur le runtime (la CLR) du Framework 2.0. En ce sens on peut les consid&amp;eacute;rer comme un Service Pack du Framework 2.0.&lt;/p&gt;
&lt;p&gt;A titre d'exemple, si vous avez une architecture x86 avec 16 processeurs, vous d&amp;eacute;marrez directement &amp;agrave; la limite de l'out-of-memory &amp;eacute;tant donn&amp;eacute; que 1536 MB de m&amp;eacute;moire virtuelle seront directement r&amp;eacute;serv&amp;eacute;s sur les 2 GB disponibles par processus. Il reste alors environ 500 MB pour le code natif, les fichiers syst&amp;egrave;mes&amp;hellip; Il est donc pr&amp;eacute;f&amp;eacute;rable pour des machines avec de nombreux processeurs, dans le cadre d'un serveur IIS/ASP.NET, de passer sur une architecture x64 pour &amp;eacute;viter cette probl&amp;eacute;matique.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Sylvain Lecerf&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10381778" width="1" height="1"&gt;</content><author><name>friis[at]microsoft.com</name><uri>http://blogs.msdn.com/friis_4000_microsoft.com/ProfileUrlRedirect.ashx</uri></author></entry></feed>