<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/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/"><channel><title>Daniel Vasquez Lopez's Blog</title><link>http://blogs.msdn.com/danielvl/default.aspx</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>System.ComponentModel.Composition Example</title><link>http://blogs.msdn.com/danielvl/archive/2009/11/06/system-componentmodel-composition-example.aspx</link><pubDate>Sat, 07 Nov 2009 01:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9918930</guid><dc:creator>Daniel Vasquez Lopez</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/danielvl/comments/9918930.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielvl/commentrss.aspx?PostID=9918930</wfw:commentRss><description>&lt;P&gt;I started playing with the .NET Framework 4.0 composition namespace (also known as MEF) and I want to share the most simple example I could write. The program prints out the providerName field, but the actual value is provided by the ExternalProvider class. The CompositionContainer class is able to wire the ExternalProvider.Name property and the Program.providerName field using the Export and Import attributes.&lt;/P&gt;
&lt;P&gt;Add the System.ComponentModel.Composition.dll assembly to your project’s references.&lt;/P&gt;
&lt;P&gt;Really simple, I think.&lt;/P&gt;
&lt;DIV style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px" id=scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:143c6ab0-c533-456b-ab2a-3d94a4b36da3 class=wlWriterEditableSmartContent&gt;
&lt;DIV style="BORDER-BOTTOM: #000080 1px solid; BORDER-LEFT: #000080 1px solid; FONT-FAMILY: 'Courier New', Courier, Monospace; COLOR: #000; FONT-SIZE: 10pt; BORDER-TOP: #000080 1px solid; BORDER-RIGHT: #000080 1px solid"&gt;
&lt;DIV style="BACKGROUND: #ddd; MAX-HEIGHT: 500px; OVERFLOW: auto"&gt;
&lt;OL style="PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 2.5em; PADDING-LEFT: 5px; PADDING-RIGHT: 0px; BACKGROUND: #ffffff; PADDING-TOP: 0px"&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; System;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; System.ComponentModel.Composition;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; System.ComponentModel.Composition.Hosting;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; System.Reflection;&lt;/LI&gt;
&lt;LI&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #0000ff"&gt;class&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;ExternalProvider&lt;/SPAN&gt; {&lt;/LI&gt;
&lt;LI&gt;&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;SPAN style="COLOR: #2b91af"&gt;Export&lt;/SPAN&gt;(&lt;SPAN style="COLOR: #a31515"&gt;"ProviderName"&lt;/SPAN&gt;)]&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;string&lt;/SPAN&gt; Name {&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: #0000ff"&gt;get&lt;/SPAN&gt; {&lt;/LI&gt;
&lt;LI&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;&lt;SPAN style="COLOR: #0000ff"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR: #a31515"&gt;"Spider"&lt;/SPAN&gt;;&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/LI&gt;
&lt;LI&gt;}&lt;/LI&gt;
&lt;LI&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="COLOR: #0000ff"&gt;class&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;Program&lt;/SPAN&gt; {&lt;/LI&gt;
&lt;LI&gt;&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: #0000ff"&gt;static&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;void&lt;/SPAN&gt; Main() {&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: #0000ff"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;Program&lt;/SPAN&gt;().Run();&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/LI&gt;
&lt;LI&gt;&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;SPAN style="COLOR: #2b91af"&gt;Import&lt;/SPAN&gt;(&lt;SPAN style="COLOR: #a31515"&gt;"ProviderName"&lt;/SPAN&gt;)]&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: #0000ff"&gt;string&lt;/SPAN&gt; providerName;&lt;/LI&gt;
&lt;LI&gt;&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: #0000ff"&gt;void&lt;/SPAN&gt; Run() {&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: #0000ff"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;CompositionContainer&lt;/SPAN&gt;(&lt;SPAN style="COLOR: #0000ff"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;AssemblyCatalog&lt;/SPAN&gt;(&lt;SPAN style="COLOR: #2b91af"&gt;Assembly&lt;/SPAN&gt;.GetExecutingAssembly())).ComposeParts(&lt;SPAN style="COLOR: #0000ff"&gt;this&lt;/SPAN&gt;);&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: #2b91af"&gt;Console&lt;/SPAN&gt;.WriteLine(&lt;SPAN style="COLOR: #0000ff"&gt;this&lt;/SPAN&gt;.providerName);&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/LI&gt;
&lt;LI&gt;}&lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9918930" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielvl/archive/tags/Extensibility/default.aspx">Extensibility</category><category domain="http://blogs.msdn.com/danielvl/archive/tags/MEF/default.aspx">MEF</category><category domain="http://blogs.msdn.com/danielvl/archive/tags/Composition/default.aspx">Composition</category><category domain="http://blogs.msdn.com/danielvl/archive/tags/Framework/default.aspx">Framework</category><category domain="http://blogs.msdn.com/danielvl/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Run MSTest.exe as a native 64-bit process.</title><link>http://blogs.msdn.com/danielvl/archive/2009/03/28/run-mstest-exe-as-native-64-bit-process.aspx</link><pubDate>Sun, 29 Mar 2009 03:38:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9516482</guid><dc:creator>Daniel Vasquez Lopez</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/danielvl/comments/9516482.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielvl/commentrss.aspx?PostID=9516482</wfw:commentRss><description>&lt;p&gt;If you need to run MS Test command line utility as a 64-bit process you need to do 2 things:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;: Be aware that this is not supported and it is under you own risk.&lt;/p&gt;  &lt;p&gt;1. Backup the MSTest.exe file first and then remove the 32-bit flag by running the &lt;a href="http://msdn.microsoft.com/en-us/library/ms164699(VS.80).aspx"&gt;CorFlags.exe&lt;/a&gt; utility as:&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; CorFlags.exe MSTest.exe /32BIT- /Force&lt;/p&gt;  &lt;p&gt;2. Run your test with /noisolation switch to run tests within the MSTest.exe process and avoid using 32-bit only VSTestHost.exe&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160; MSTest.exe /testcontainer:&amp;lt;your assembly&amp;gt; /resultsfile:results.trx /noisolation&lt;/p&gt;  &lt;p&gt;And optionally, if MSTest.exe fails because the 32-bit flag was modified, you may want to skip the strong name verification:&lt;/p&gt;  &lt;p&gt;reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\MSTest,b03f5f7f11d50a3a /f&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9516482" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielvl/archive/tags/mstest/default.aspx">mstest</category><category domain="http://blogs.msdn.com/danielvl/archive/tags/x64/default.aspx">x64</category><category domain="http://blogs.msdn.com/danielvl/archive/tags/unit+test/default.aspx">unit test</category></item><item><title>Faster proxy detection for HttpWebRequest</title><link>http://blogs.msdn.com/danielvl/archive/2009/03/23/faster-proxy-detection-for-httpwebrequest.aspx</link><pubDate>Mon, 23 Mar 2009 21:42:55 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9502213</guid><dc:creator>Daniel Vasquez Lopez</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/danielvl/comments/9502213.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielvl/commentrss.aspx?PostID=9502213</wfw:commentRss><description>&lt;p&gt;Do a web request using System.Net classes, HttpWebRequest or WebClient. For example:&lt;/p&gt;  &lt;div class="code"&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;WebClient().DownloadFile(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;http://tinyurl.com/d5yy8a&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;font color="#808080"&gt; @&amp;quot;C:\Temp\file.xml&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt; &lt;/div&gt;  &lt;p&gt;Or:&lt;/p&gt;  &lt;div class="code"&gt;&lt;font color="#000000"&gt;HttpWebRequest.Create(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;http://tinyurl.com/d5yy8a&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;).GetResponse()&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt; &lt;/div&gt;  &lt;p&gt;If the first request takes more than 4 seconds and you think is too much time for your application, then the following information may interest you.&lt;/p&gt;  &lt;p&gt;The reason the first request takes more time is because it tries, by default, to detect the proxy setting in a weird way. The framework uses an embedded JavaScript code for doing the detection, but the first time it does it’s job, it spends more time “dynamically compiling” the JavaScipt code than executing the actual proxy detection logic.&lt;/p&gt;  &lt;p&gt;One way to skip this detection is by setting the proxy settings yourself, either by code or by using a configuration file like this:&lt;/p&gt;  &lt;div class="code"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;configuration&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#000000"&gt;      &lt;br /&gt;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;system.net&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#000000"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;defaultProxy&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#000000"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;proxy&lt;/font&gt;&lt;font color="#ff0000"&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; proxyaddress&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;http://ContosoProxy:80&amp;quot;&lt;/font&gt;&lt;font color="#ff0000"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; autoDetect&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;False&amp;quot;&lt;/font&gt;&lt;font color="#ff0000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;defaultProxy&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#000000"&gt;      &lt;br /&gt;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;system.net&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#000000"&gt;      &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;configuration&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;/font&gt; &lt;/div&gt;  &lt;p&gt;If that solution doesn’t suits you, another way is do the proxy detection yourself (well, with the help of WinHttp.dll). It happens that there is a library in Windows XP, 2003, Vista, 7, called WinHttp.dll that exposes useful methods for proxy detection and in order to use it we just need some P/Invoke code and P/Invoke is by far faster than compiling the embedded JavaScript.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.live.com/search?q=WinHttpGetProxyForUrl"&gt;WinHttpGetProxyForUrl&lt;/a&gt; can be used for detecting the proxy for an URL and the function &lt;a href="http://www.live.com/search?q=WinHttpGetIEProxyConfigForCurrentUser"&gt;WinHttpGetIEProxyConfigForCurrentUser&lt;/a&gt; is useful if you want to read the proxy configuration from Internet Explorer. In this example I won’t do the IE proxy configuration reading just to keep it simple.&lt;/p&gt;  &lt;p&gt;WinHttpGetProxyForUrl return a list of proxies to use. That list may look like a list of IP address separated by colons. In the example below I split that list and pre-append the http:// suffix if needed so it can became a valid URL. This example just picks the first proxy address and uses it. You can later on add logic to try multiple proxies if the request fails, just remember that once you use a HttpWebRequest object, you cannot re-use it, you need to create a new one and also keep the tracking of the all the timeout so you don’t end waiting 1 hour before timeout. If you use WebClient, you can override the method GetWebResponse and set the proxy there, just don’t eat the WebException exceptions that have a Status equals WebExceptionStatus.ProtocolError since that is actually a valid response.&lt;/p&gt;  &lt;p&gt;Using normal System.Net proxy detection I get the output:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;MS:7537&lt;/strong&gt;     &lt;br /&gt;MS:41     &lt;br /&gt;MS:39     &lt;br /&gt;…&lt;/p&gt;  &lt;p&gt;Using WinHttp.dll I get:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;MS:410&lt;/strong&gt;     &lt;br /&gt;MS:11     &lt;br /&gt;MS:11     &lt;br /&gt;…&lt;/p&gt;  &lt;p&gt;Here you have:&lt;/p&gt;  &lt;p&gt;   &lt;p&gt;&lt;a title="http://code.msdn.microsoft.com/WinHttp" href="http://code.msdn.microsoft.com/WinHttp"&gt;http://code.msdn.microsoft.com/WinHttp&lt;/a&gt;&lt;/p&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9502213" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielvl/archive/tags/IIS/default.aspx">IIS</category></item><item><title>How to consume ETW events from C#</title><link>http://blogs.msdn.com/danielvl/archive/2009/02/02/how-to-consume-etw-events-from-c.aspx</link><pubDate>Tue, 03 Feb 2009 04:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9392291</guid><dc:creator>Daniel Vasquez Lopez</dc:creator><slash:comments>10</slash:comments><comments>http://blogs.msdn.com/danielvl/comments/9392291.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielvl/commentrss.aspx?PostID=9392291</wfw:commentRss><description>&lt;P&gt;In my &lt;A href="http://blogs.msdn.com/danielvl/archive/2009/01/25/view-etw-rewrite-events.aspx" mce_href="http://blogs.msdn.com/danielvl/archive/2009/01/25/view-etw-rewrite-events.aspx"&gt;previous post&lt;/A&gt; I explained how to collect ETW events from URL Rewrite (or any other IIS provider) and then display those structured events in the Event Viewer. Now I want to show you how to collect ETW events using C#.&lt;/P&gt;
&lt;P&gt;The .NET Framework 3.5 provides a new namespace System.Diagnostics.Eventing.Reader where you can find useful classes for publishing ETW events, but doesn’t provide a mechanism for consuming, so I had to write a class EventTraceWatcher for simplify things.&lt;/P&gt;
&lt;P&gt;I want to use this class for tracking, in real time, all the URL Rewrite Events. &lt;/P&gt;
&lt;H2&gt;Setup Event Trace Session&lt;/H2&gt;
&lt;P&gt;The first thing to do is to setup the session, open “Reliability and Performance Monitor”, go to Event Trace Sessions and add a new Data Collector Set named “Rewrite”; my &lt;A href="http://blogs.msdn.com/danielvl/archive/2009/01/25/view-etw-rewrite-events.aspx" mce_href="http://blogs.msdn.com/danielvl/archive/2009/01/25/view-etw-rewrite-events.aspx"&gt;previous post&lt;/A&gt; has more detailed steps, once you create the collector set, go to its properties and add the provider “IIS: WWW Server” and the Keyword 0x400 (Rewrite) and set the Level to 5. Here is how it should be:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/HowtoconsumeETWeventsfromC_F36B/Trace%20Providers_2.png" mce_href="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/HowtoconsumeETWeventsfromC_F36B/Trace%20Providers_2.png"&gt;&lt;IMG title="Trace Providers" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=368 alt="Trace Providers" src="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/HowtoconsumeETWeventsfromC_F36B/Trace%20Providers_thumb.png" width=516 border=0 mce_src="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/HowtoconsumeETWeventsfromC_F36B/Trace%20Providers_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;H2&gt;Use stream mode “Real Time”&lt;/H2&gt;
&lt;P&gt;By default the Data Collector Set will write the collected events in the file system. Change it from File to “Real Time”. Your .NET Application will be listening those real time events. Open the data collector properties and in the Trace Session tab change this setting.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/HowtoconsumeETWeventsfromC_F36B/Trace%20Session_2.png" mce_href="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/HowtoconsumeETWeventsfromC_F36B/Trace%20Session_2.png"&gt;&lt;IMG title="Trace Session" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=369 alt="Trace Session" src="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/HowtoconsumeETWeventsfromC_F36B/Trace%20Session_thumb.png" width=516 border=0 mce_src="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/HowtoconsumeETWeventsfromC_F36B/Trace%20Session_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Make sure to start the Rewrite Collector once you are finish with this settings.&lt;/P&gt;
&lt;H2&gt;EventTraceWatcher class&lt;/H2&gt;
&lt;P&gt;The EventTraceWatcher class is very trivial to use, you need to provide the name of the Data Collector Set to it’s constructor (“Rewrite” in our example), hook the event “EventArrived” in your code and then just set the property Enabled to true to start the asynchronous processing of the ETW Events.&lt;/P&gt;
&lt;DIV class=code&gt;&lt;FONT color=#0000ff&gt;using&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;System&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;using&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;Microsoft.Iis.Samples.Eventing&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;class&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;Program&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;{&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;static&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;void&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;Main()&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;{&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;try&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;{&lt;/FONT&gt;&lt;FONT color=#808080&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; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;new&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;Program().Run()&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;}&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;catch&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;(&lt;/FONT&gt;&lt;FONT color=#2b91af&gt;Exception&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;ex)&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;{&lt;/FONT&gt;&lt;FONT color=#808080&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; &lt;/FONT&gt;&lt;FONT color=#2b91af&gt;Console&lt;/FONT&gt;&lt;FONT color=#000000&gt;.Error.WriteLine(ex)&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;}&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;}&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;private&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;void&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;Run()&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;{&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;Guid&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;RewriteProviderId&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;=&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;new&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;Guid(&lt;/FONT&gt;&lt;FONT color=#808080&gt;"0469abfa-1bb2-466a-b645-e3e15a02f38b"&lt;/FONT&gt;&lt;FONT color=#000000&gt;)&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;using&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;(EventTraceWatcher&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;watcher&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;=&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;new&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;EventTraceWatcher(&lt;/FONT&gt;&lt;FONT color=#808080&gt;"Rewrite"&lt;/FONT&gt;&lt;FONT color=#000000&gt;))&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;{&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&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; &lt;/FONT&gt;&lt;FONT color=#000000&gt;watcher.EventArrived&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;+&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;=&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;delegate&lt;/FONT&gt;&lt;FONT color=#000000&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;object&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;sender,&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;EventArrivedEventArgs&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;e)&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;{&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&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; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;if&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;(e.EventException&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;!&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;=&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;null&lt;/FONT&gt;&lt;FONT color=#000000&gt;)&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;{&lt;/FONT&gt;&lt;FONT color=#808080&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; &lt;/FONT&gt;&lt;FONT color=#006400&gt;// Handle the exception &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080&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; &lt;/FONT&gt;&lt;FONT color=#2b91af&gt;Console&lt;/FONT&gt;&lt;FONT color=#000000&gt;.Error.WriteLine(e.EventException)&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&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; &lt;/FONT&gt;&lt;FONT color=#2b91af&gt;Environment&lt;/FONT&gt;&lt;FONT color=#000000&gt;.Exit(-&lt;/FONT&gt;&lt;FONT color=#800000&gt;1&lt;/FONT&gt;&lt;FONT color=#000000&gt;)&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&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; &lt;/FONT&gt;&lt;FONT color=#000000&gt;}&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&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; &lt;/FONT&gt;&lt;FONT color=#006400&gt;// Process only URL Rewrite events &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080&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; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;if&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;(e.ProviderId&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;!&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;=&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;RewriteProviderId)&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;{&lt;/FONT&gt;&lt;FONT color=#808080&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; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;return;&lt;/FONT&gt;&lt;FONT color=#808080&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; &lt;/FONT&gt;&lt;FONT color=#000000&gt;}&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&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; &lt;/FONT&gt;&lt;FONT color=#006400&gt;// Dump the event name (e.g. URL_REWRITE_START, ABORT_REQUEST_ACTION, etc). &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080&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; &lt;/FONT&gt;&lt;FONT color=#2b91af&gt;Console&lt;/FONT&gt;&lt;FONT color=#000000&gt;.WriteLine(&lt;/FONT&gt;&lt;FONT color=#808080&gt;"Event Name: " &lt;/FONT&gt;&lt;FONT color=#000000&gt;+&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;e.EventName)&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&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; &lt;/FONT&gt;&lt;FONT color=#006400&gt;// Dump properties (e.g. RewriteURL, Pattern, etc). &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080&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; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;foreach&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;var&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;p&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;in&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;e.Properties)&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;{&lt;/FONT&gt;&lt;FONT color=#808080&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; &lt;/FONT&gt;&lt;FONT color=#2b91af&gt;Console&lt;/FONT&gt;&lt;FONT color=#000000&gt;.WriteLine(&lt;/FONT&gt;&lt;FONT color=#808080&gt;"\t" &lt;/FONT&gt;&lt;FONT color=#000000&gt;+&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;p.Key&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;+&lt;/FONT&gt;&lt;FONT color=#808080&gt; " -- " &lt;/FONT&gt;&lt;FONT color=#000000&gt;+&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;p.Value)&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&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; &lt;/FONT&gt;&lt;FONT color=#000000&gt;}&lt;/FONT&gt;&lt;FONT color=#808080&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; &lt;/FONT&gt;&lt;FONT color=#2b91af&gt;Console&lt;/FONT&gt;&lt;FONT color=#000000&gt;.WriteLine()&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&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; &lt;/FONT&gt;&lt;FONT color=#000000&gt;}&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&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; &lt;/FONT&gt;&lt;FONT color=#006400&gt;// Start listening &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;watcher.Enabled&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;=&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;true;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV class=code&gt;&lt;FONT color=#006400&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Listen events until user press &amp;lt;Enter&amp;gt;&lt;/FONT&gt;&lt;FONT color=#808080&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; &lt;/FONT&gt;&lt;FONT color=#2b91af&gt;Console&lt;/FONT&gt;&lt;FONT color=#000000&gt;.WriteLine(&lt;/FONT&gt;&lt;FONT color=#808080&gt;"Press &amp;lt;Enter&amp;gt; to exit"&lt;/FONT&gt;&lt;FONT color=#000000&gt;)&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&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; &lt;/FONT&gt;&lt;FONT color=#2b91af&gt;Console&lt;/FONT&gt;&lt;FONT color=#000000&gt;.ReadLine()&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;}&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;}&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;}&lt;/FONT&gt; &lt;/DIV&gt;
&lt;P&gt;With this code you can write tools to help you to filter in real time information from IIS. Download the EventTraceWatcher class from:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://code.msdn.microsoft.com/EventTraceWatcher"&gt;http://code.msdn.microsoft.com/EventTraceWatcher&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9392291" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielvl/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/danielvl/archive/tags/Rewrite/default.aspx">Rewrite</category><category domain="http://blogs.msdn.com/danielvl/archive/tags/ETW/default.aspx">ETW</category><category domain="http://blogs.msdn.com/danielvl/archive/tags/Rewriter/default.aspx">Rewriter</category></item><item><title>How to display URL Rewrite ETW Events in the Event Viewer</title><link>http://blogs.msdn.com/danielvl/archive/2009/01/25/view-etw-rewrite-events.aspx</link><pubDate>Mon, 26 Jan 2009 01:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9375348</guid><dc:creator>Daniel Vasquez Lopez</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/danielvl/comments/9375348.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielvl/commentrss.aspx?PostID=9375348</wfw:commentRss><description>&lt;p&gt;IIS Failed Request Tracing is a powerful way to troubleshoot Web Requests, it provides an easy way to track each execution step for one specific request. URL Rewrite Module provides several events that can be tracked using Failed Request Tracing, here is an article that explains how: &lt;a title="http://learn.iis.net/page.aspx/467/using-failed-request-tracing-to-trace-rewrite-rules/" mce_href="http://learn.iis.net/page.aspx/467/using-failed-request-tracing-to-trace-rewrite-rules/" href="http://learn.iis.net/page.aspx/467/using-failed-request-tracing-to-trace-rewrite-rules/"&gt;http://learn.iis.net/page.aspx/467/using-failed-request-tracing-to-trace-rewrite-rules/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;IIS Modules have the ability to publish ETW Events almost for free and URL Rewrite was not the exception and implemented this feature. There are many ways to listening for ETW Event, but one way that I found really easy is using the Event Viewer and the Reliability and Performance tools in Windows 2008 (and Vista).&lt;/p&gt;  &lt;p&gt;I’m running Windows 2008, so let me show you how to listen the URL Rewrite ETW events using the Server Manager tool.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Be sure IIS Failed Request Tracing is enabled by following the article above.&lt;/li&gt;    &lt;li&gt;Open Server Manager and navigate to Server Manager / Diagnostics / Reliability and Performance / Data Collector Sets / Event Trace Sessions&lt;/li&gt;    &lt;li&gt;In the Action Pane select More Actions &gt; New &gt; Data Collector Set&lt;/li&gt;    &lt;li&gt;Choose a Name and click Next&lt;/li&gt;    &lt;li&gt;In the “Which event trace providers would you like to enable?” step, click Add (wait some seconds) and choose “IIS: WWW Server”:&lt;/li&gt;    &lt;li&gt;&lt;a mce_href="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/ViewETWRewriteEvents_CB99/Step%201_2.png" href="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/ViewETWRewriteEvents_CB99/Step%201_2.png"&gt;&lt;img title="Step 1" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="160" alt="Step 1" mce_src="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/ViewETWRewriteEvents_CB99/Step%201_thumb.png" width="244" border="0" src="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/ViewETWRewriteEvents_CB99/Step%201_thumb.png"&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Choose the property “Keywords(Any)” and click Edit. For URL Rewrite events, you need to choose Manual and type the value 0x400. You can optionally mix this value with any other flag available like IISSecurity or IISModule (0x200); if you select Automatic and the flag, you will see in the Manual text box the flag value. Click OK to close the Property dialog.&lt;/li&gt;    &lt;li&gt;Now choose the property “Level” and click Edit, this time select Manual and type the number 5. Click OK and the Finish.&lt;/li&gt;    &lt;li&gt;A new Event Trace Session has been created. You can click the Start button any time to start listening and recording all the URL Rewrite events. &lt;/li&gt;    &lt;li&gt;&lt;a mce_href="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/ViewETWRewriteEvents_CB99/Step%202_2.png" href="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/ViewETWRewriteEvents_CB99/Step%202_2.png"&gt;&lt;img title="Step 2" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="158" alt="Step 2" mce_src="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/ViewETWRewriteEvents_CB99/Step%202_thumb.png" width="244" border="0" src="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/ViewETWRewriteEvents_CB99/Step%202_thumb.png"&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;By default, all the recorded data will be stored in the directory %LOCALAPPDATA%, to change this, select the session “URL Rewrite” and choose Properties from the contextual menu. There is a Directory and File tabs change your settings.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Let’s do a break. At this point you had configured Windows to start listening URL Rewrite events; those events will be recorded in a ETL file that can be processed by many tools like Log Parser and TraceRpt.exe. To display those event in the Event Viewer you need:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;In the Server Manager tool, navigate to Server Manager / Diagnostics / Event Viewer / Application And Services Logs&lt;/li&gt;    &lt;li&gt;Click the action Open Saved Log and choose the ETL file, if you didn't’ change the default settings, it should be at “%LOCALAPPDATA%\URL Rewrite.etl”. Click OK to close the “Open Saved Log” dialog.&lt;/li&gt;    &lt;li&gt;Select the URL Rewrite log from the Saved Logs folder:&lt;/li&gt;    &lt;li&gt;&lt;a mce_href="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/ViewETWRewriteEvents_CB99/Step%203_2.png" href="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/ViewETWRewriteEvents_CB99/Step%203_2.png"&gt;&lt;img title="Step 3" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="125" alt="Step 3" mce_src="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/ViewETWRewriteEvents_CB99/Step%203_thumb.png" width="244" border="0" src="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/ViewETWRewriteEvents_CB99/Step%203_thumb.png"&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Now you will realized that the Event Viewer only has one part of the information available, the ETL file, it still needs to match that data to some other metadata stored in the WMI repository store in order to show you the formatted data. &lt;/li&gt;    &lt;li&gt;Select the “URL Rewrite” log and click the action “Save Events As” and safe the log as “URL Rewrite Events.evtx” (note the new extension).&lt;/li&gt;    &lt;li&gt;Once saved, open the new file using, again, the action “Open Saved Log”&lt;/li&gt;    &lt;li&gt;Now you click any Event in the list. The General tab won’t show anything relevant, but the Details will:&lt;/li&gt;    &lt;li&gt;&lt;a mce_href="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/ViewETWRewriteEvents_CB99/Step%204_2.png" href="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/ViewETWRewriteEvents_CB99/Step%204_2.png"&gt;&lt;img title="Step 4" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="163" alt="Step 4" mce_src="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/ViewETWRewriteEvents_CB99/Step%204_thumb.png" width="244" border="0" src="http://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/ViewETWRewriteEvents_CB99/Step%204_thumb.png"&gt;&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I will have some conclusions later, I have to leave now. Hope you find it somehow useful.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9375348" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielvl/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/danielvl/archive/tags/Rewrite/default.aspx">Rewrite</category><category domain="http://blogs.msdn.com/danielvl/archive/tags/ETW/default.aspx">ETW</category><category domain="http://blogs.msdn.com/danielvl/archive/tags/Rewriter/default.aspx">Rewriter</category></item><item><title>Write your own UI Rewrite Template Extension!</title><link>http://blogs.msdn.com/danielvl/archive/2008/09/27/write-your-own-ui-rewrite-template-extension.aspx</link><pubDate>Sun, 28 Sep 2008 06:21:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8967844</guid><dc:creator>Daniel Vasquez Lopez</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/danielvl/comments/8967844.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielvl/commentrss.aspx?PostID=8967844</wfw:commentRss><description>&lt;P&gt;The GoLive release of URL Rewrite Module is now available and has a lot of improvement thanks to the IIS Community feedback (and tons of internal brainstorm meetings!). A new feature is the ability to create Rewrite Rules by using Rewrite Templates, Rewrite Templates are UI extensions that help to simplify the creation of rules. &lt;/P&gt;
&lt;P&gt;URL Rewrite Module includes 3 templates and more interesting, it allows you to add your own Rewrite Template.&lt;/P&gt;
&lt;P&gt;Take a look to the following walkthrough if you haven’t play with Rewrite Templates:&lt;/P&gt;
&lt;P&gt;&lt;A title=http://learn.iis.net/page.aspx/497/user-friendly-url---rule-template/ href="http://learn.iis.net/page.aspx/497/user-friendly-url---rule-template/" mce_href="http://learn.iis.net/page.aspx/497/user-friendly-url---rule-template/"&gt;http://learn.iis.net/page.aspx/497/user-friendly-url---rule-template/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I want to show you how easy is to write your own Rewrite Template extension, here is how this demo should look like:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/ExtendingURLRewriteModuleUI_94DC/RewriteTemplateBasic_4.png" mce_href="https://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/ExtendingURLRewriteModuleUI_94DC/RewriteTemplateBasic_4.png"&gt;&lt;IMG title=RewriteTemplateBasic style="BORDER-TOP-WIDTH: 0px; DISPLAY: inline; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=447 alt=RewriteTemplateBasic src="https://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/ExtendingURLRewriteModuleUI_94DC/RewriteTemplateBasic_thumb_1.png" width=506 border=0 mce_src="https://blogs.msdn.com/blogfiles/danielvl/WindowsLiveWriter/ExtendingURLRewriteModuleUI_94DC/RewriteTemplateBasic_thumb_1.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;As you know, iis.net has already some good articles that explain how to create an IIS Manager UI Module, so allow me to reuse the following article:&lt;/P&gt;
&lt;P&gt;&lt;A title=http://learn.iis.net/page.aspx/269/how-to-create-a-simple-iis-manager-module/ href="http://learn.iis.net/page.aspx/269/how-to-create-a-simple-iis-manager-module/" mce_href="http://learn.iis.net/page.aspx/269/how-to-create-a-simple-iis-manager-module/"&gt;http://learn.iis.net/page.aspx/269/how-to-create-a-simple-iis-manager-module/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Follow the article above and once you are done with it, please do the following changes.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Add the assembly Microsoft.Web.Management.Rewrite.Client.dll to your C# project. If you can’t find the assembly reference in the GAC, download it from &lt;A href="http://cid-3081693fa6e80399.skydrive.live.com/self.aspx/Code/Microsoft.Web.Management.Rewrite.Client.dll" mce_href="http://cid-3081693fa6e80399.skydrive.live.com/self.aspx/Code/Microsoft.Web.Management.Rewrite.Client.dll"&gt;here&lt;/A&gt;.&amp;nbsp; &lt;/LI&gt;
&lt;LI&gt;Replace the code in DemoModule.cs by the following code that registers your extension in the URL Rewrite UI Module: &lt;/LI&gt;
&lt;DIV class=code&gt;&lt;FONT color=#0000ff&gt;using&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;System&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;using&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;Microsoft.Web.Management.Client&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;using&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;Microsoft.Web.Management.Iis.Rewrite.RewriteTemplates&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;using&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;Microsoft.Web.Management.Server&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;namespace&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;ExtensibilityDemo&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;{&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;internal&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;sealed&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;class&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;DemoModule&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;:&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;Module&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;{&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;protected&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;override&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;void&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;Initialize(IServiceProvider&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;serviceProvider,&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;ModuleInfo&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;moduleInfo)&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;{&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;base&lt;/FONT&gt;&lt;FONT color=#000000&gt;.Initialize(serviceProvider,&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;moduleInfo)&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;IExtensibilityManager&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;extensibilityManager&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;=&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;(IExtensibilityManager)&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;GetService(&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;typeof&lt;/FONT&gt;&lt;FONT color=#000000&gt;(IExtensibilityManager))&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;extensibilityManager.RegisterExtension(&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;typeof&lt;/FONT&gt;&lt;FONT color=#000000&gt;(RewriteTemplateFeature),&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;new&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;DemoRewriteTemplateFeature(&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;this&lt;/FONT&gt;&lt;FONT color=#000000&gt;))&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;}&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;}&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;}&lt;/FONT&gt; &lt;/DIV&gt;
&lt;LI&gt;Add a new file named DemoRewriteTemplateFeature.cs and copy and paste following code: 
&lt;OL&gt;
&lt;DIV class=code&gt;&lt;FONT color=#0000ff&gt;using&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;Microsoft.Web.Management.Client&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;using&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;Microsoft.Web.Management.Iis.Rewrite.RewriteTemplates&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;using&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;System.Windows.Forms&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;namespace&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;ExtensibilityDemo&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;{&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;internal&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;sealed&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;class&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;DemoRewriteTemplateFeature&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;:&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;RewriteTemplateFeature&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;{&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;private&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;const&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;string&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;FeatureTitle&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;=&lt;/FONT&gt;&lt;FONT color=#808080&gt; "Rewrite Extensibility Demo"&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;private&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;const&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;string&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;FeatureDescription&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;=&lt;/FONT&gt;&lt;FONT color=#808080&gt; "Demonstrates the UI Extensibility."&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;public&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;DemoRewriteTemplateFeature(Module&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;module)&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;:&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;base&lt;/FONT&gt;&lt;FONT color=#000000&gt;(module,&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;FeatureTitle,&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;FeatureDescription,&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;null&lt;/FONT&gt;&lt;FONT color=#000000&gt;,&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;null&lt;/FONT&gt;&lt;FONT color=#000000&gt;)&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;{&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;}&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;public&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;override&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;void&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;Run()&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;{&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#2b91af&gt;Form&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;form&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;=&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;new&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#2b91af&gt;Form&lt;/FONT&gt;&lt;FONT color=#000000&gt;()&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;form.Text&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;=&lt;/FONT&gt;&lt;FONT color=#808080&gt; "URL Rewrite Extensibility Demo"&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;form.StartPosition&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;=&lt;/FONT&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;FormStartPosition.CenterParent&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;form.ShowDialog()&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;;&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;}&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#000000&gt;}&lt;/FONT&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;}&lt;/FONT&gt; &lt;/DIV&gt;
&lt;HR style="HEIGHT: 1px; BACKGROUND-COLOR: #808080"&gt;
&lt;SPAN style="FONT-SIZE: 8pt; COLOR: #808080; FONT-FAMILY: tahoma"&gt;Colorized by: &lt;A style="COLOR: #808080" href="http://www.carlosag.net/Tools/CodeColorizer/" mce_href="http://www.CarlosAg.net/Tools/CodeColorizer/"&gt;CarlosAg.CodeColorizer&lt;/A&gt;&lt;/SPAN&gt; &lt;/OL&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Download the demo from here:&lt;/P&gt;
&lt;P&gt;&lt;IFRAME style="BORDER-RIGHT: #dde5e9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dde5e9 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: #dde5e9 1px solid; WIDTH: 240px; PADDING-TOP: 0px; BORDER-BOTTOM: #dde5e9 1px solid; HEIGHT: 26px; BACKGROUND-COLOR: #ffffff" marginWidth=0 marginHeight=0 src="http://cid-3081693fa6e80399.skydrive.live.com/embedrow.aspx/Code/RewriteExtensibilityDemo.zip" frameBorder=0 scrolling=no mce_src="http://cid-3081693fa6e80399.skydrive.live.com/embedrow.aspx/Code/RewriteExtensibilityDemo.zip"&gt;&lt;/IFRAME&gt;&lt;/P&gt;
&lt;P&gt;To install it, you will need to GAC the assembly RewriteExtensibilityDemo.dll and register the module in administration.config by adding the following entry under the moduleProviders section:&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#800000&gt;add&lt;/FONT&gt;&lt;FONT color=#ff0000&gt; name&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;="RewriteExtensibilityDemo"&lt;/FONT&gt;&lt;FONT color=#ff0000&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;="ExtensibilityDemo.DemoModuleProvider, RewriteExtensibilityDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8975c3932a2fc4ae"&lt;/FONT&gt;&lt;FONT color=#ff0000&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;/&amp;gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8967844" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielvl/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/danielvl/archive/tags/UI/default.aspx">UI</category><category domain="http://blogs.msdn.com/danielvl/archive/tags/Rewrite/default.aspx">Rewrite</category><category domain="http://blogs.msdn.com/danielvl/archive/tags/Extensibility/default.aspx">Extensibility</category></item><item><title>URL Rewrite for IIS 7.0 / Regular Expressions and Wildcards</title><link>http://blogs.msdn.com/danielvl/archive/2008/06/06/url-rewrite-for-iis-7-0-regular-expressions-and-wildcards.aspx</link><pubDate>Sat, 07 Jun 2008 01:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8579147</guid><dc:creator>Daniel Vasquez Lopez</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/danielvl/comments/8579147.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielvl/commentrss.aspx?PostID=8579147</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Last week we shipped the first preview of URL Rewrite Module for IIS 7.0. If you are not familiar with URL Rewriting engines, please check out the walkthroughs:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;A href="http://learn.iis.net/page.aspx/460/using-url-rewrite-module/"&gt;&lt;FONT face=Calibri size=3&gt;http://learn.iis.net/page.aspx/460/using-url-rewrite-module/&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;If you are you familiar with mod_rewrite, I’m pleased to let you know that we have a &lt;STRONG&gt;mod_rewrite rule importer&lt;/STRONG&gt; feature to help you to leverage your rule-crafting knowledge:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;A href="http://learn.iis.net/page.aspx/470/importing-apache-modrewrite-rules/"&gt;http://learn.iis.net/page.aspx/470/importing-apache-modrewrite-rules/&lt;/A&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;URL Rewrite Module ships two matching engines, one for Regular Expressions (Perl 5 compatible/ECMAScript) and a simple one for wildcard matching. You can choose the engine you feel more comfortable with, I just want to give you some facts (some of them are silly but they are just a reminder):&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;1.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Regex matching is more powerful, but expensive in terms of execution time.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Wildcard matching is cheaper than Regex and easy to understand.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;3.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Both engines are case-insensitive by default.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;4.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Case-sensitive matching has much better performance than case-insensitive.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;5.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Wildcard matching assumes “exact match”. For an expression like “blog”, it would match “blog” and only “blog”.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;6.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Regex matching assumes “partial match”. In this case, “blog” will match “&lt;B style="mso-bidi-font-weight: normal"&gt;blog&lt;/B&gt;ger”, “demo/&lt;B style="mso-bidi-font-weight: normal"&gt;blog&lt;/B&gt;”. If you want an exact match you need to change the match expression to “^blog$”.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;7.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;In Regex, “.” is reserved, it means “any character”, so “default.aspx$” will match “default&lt;B style="mso-bidi-font-weight: normal"&gt;X&lt;/B&gt;aspx” too. Escape it to “default&lt;B style="mso-bidi-font-weight: normal"&gt;\&lt;/B&gt;.aspx$’. Wildcards doesn’t have this behavior, the only reserved character is ‘*’.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;8.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;To create a capture in Regex, use parenthesis.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;9.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Each ‘*’ in a wildcard expression creates a capture. For example, an expression like “*.*” would match “logo.jpg” and it will create 2 captures, “logo” and “jpg” (without the dot).&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;10.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;You can reference a capture by index. The index is 1-based, so in the previous example 1 means “logo” and 2 means “jpg”.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;11.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;The index 0 means “the entire input”. In the previous example 0 means “logo.jpg”.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;12.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;The syntax for back-reference a capture is {&lt;I style="mso-bidi-font-style: normal"&gt;type&lt;/I&gt;:&lt;I style="mso-bidi-font-style: normal"&gt;index&lt;/I&gt;} where &lt;I style="mso-bidi-font-style: normal"&gt;type&lt;/I&gt; can be &lt;B style="mso-bidi-font-weight: normal"&gt;R&lt;/B&gt; for “Rule Back References” and “ &lt;B style="mso-bidi-font-weight: normal"&gt;C&lt;/B&gt; for “Condition Back References”. The &lt;I style="mso-bidi-font-style: normal"&gt;index&lt;/I&gt; must be and integer equals or greater than zero.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Please give all the feedback you want, this is a technical preview so your feedback can &lt;STRONG&gt;definitely&lt;/STRONG&gt; make a difference for the next release.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Install it from:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;A href="http://www.iis.net/Downloads/1691/ItemPermaLink.ashx"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;Microsoft URL Rewrite Module for IIS 7.0 CTP1 (x86)&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;A href="http://www.iis.net/Downloads/1692/ItemPermaLink.ashx"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;Microsoft URL Rewrite Module for IIS 7.0 CTP1 (x64)&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN lang=EN style="mso-ansi-language: EN"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;URL Rewrite Forum:&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN lang=EN style="mso-ansi-language: EN"&gt;&lt;A title=http://forums.iis.net/1152.aspx href="http://forums.iis.net/1152.aspx" mce_href="http://forums.iis.net/1152.aspx"&gt;&lt;FONT face=Calibri size=3&gt;http://forums.iis.net/1152.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8579147" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielvl/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/danielvl/archive/tags/Rewrite/default.aspx">Rewrite</category></item><item><title>How to find a process command-line using kernel debugger?</title><link>http://blogs.msdn.com/danielvl/archive/2007/04/30/how-to-find-a-process-command-line-using-kernel-debugger.aspx</link><pubDate>Tue, 01 May 2007 03:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2347073</guid><dc:creator>Daniel Vasquez Lopez</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/danielvl/comments/2347073.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielvl/commentrss.aspx?PostID=2347073</wfw:commentRss><description>&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I hadn't posted since two years ago; a lot of things happen in such a time and now I'm part of the IIS team. I'm not sure about what to talk about, so I will start with random stuff.&lt;/P&gt;
&lt;P&gt;I found debugging very task oriented, there are a bunch of ways to get an answer to the same question; let's say that someone gave you a machine ready to be debugged in kernel mode and you want to do .tlist -v to list all the processes and the additional information such as PID, Session, Command Line. If you are using a remote machine to access the target machine in kernel mode, .tlist will give you the process in the remote machine; to get the processes in the target machine and dump&amp;nbsp;process information such as the Command Line arguments follow the next steps:&lt;/P&gt;
&lt;P&gt;1. List the processes.&lt;/P&gt;
&lt;P&gt;kd&amp;gt; !process 0 0&lt;/P&gt;
&lt;P&gt;**** NT ACTIVE PROCESS DUMP ****&lt;BR&gt;PROCESS 8447b790&amp;nbsp; SessionId: none&amp;nbsp; Cid: 0004&amp;nbsp;&amp;nbsp;&amp;nbsp; Peb: 00000000&amp;nbsp; ParentCid: 0000&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DirBase: 00122000&amp;nbsp; ObjectTable: 830002d8&amp;nbsp; HandleCount: 580.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Image: System&lt;/P&gt;
&lt;P&gt;... (some other processes)&lt;/P&gt;
&lt;P&gt;PROCESS 867b7d90&amp;nbsp; SessionId: 0&amp;nbsp; Cid: 07a4&amp;nbsp;&amp;nbsp;&amp;nbsp; Peb: 7ffdf000&amp;nbsp; ParentCid: 0a00&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DirBase: 7ea6b560&amp;nbsp; ObjectTable: 83170470&amp;nbsp; HandleCount:&amp;nbsp; 60.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Image: appcmd.exe&lt;/P&gt;
&lt;P&gt;2. Look for your process and copy the DirBase property, in this example I will use appcmd.exe (7ea6b560), and switch to the process' context:&lt;/P&gt;
&lt;P&gt;kd&amp;gt; .context 7ea6b560&lt;/P&gt;
&lt;P&gt;3. Dump the process information, that information includes the command-line&lt;/P&gt;
&lt;P&gt;kd&amp;gt; !peb&lt;/P&gt;
&lt;P&gt;PEB at 7ffdf000&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InheritedAddressSpace:&amp;nbsp;&amp;nbsp;&amp;nbsp; No&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ReadImageFileExecOptions: No&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BeingDebugged:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; No&lt;/P&gt;
&lt;P&gt;.... (more information)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ImageFile:&amp;nbsp;&amp;nbsp;&amp;nbsp; 'D:\Windows\System32\inetsrv\appcmd.exe'&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CommandLine:&amp;nbsp; 'D:\Windows\System32\inetsrv\appcmd.exe clear config -section:system.web&lt;BR&gt;Server/cgi'&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2347073" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielvl/archive/tags/KD/default.aspx">KD</category><category domain="http://blogs.msdn.com/danielvl/archive/tags/Kernel/default.aspx">Kernel</category><category domain="http://blogs.msdn.com/danielvl/archive/tags/Debugging/default.aspx">Debugging</category><category domain="http://blogs.msdn.com/danielvl/archive/tags/Line/default.aspx">Line</category><category domain="http://blogs.msdn.com/danielvl/archive/tags/FTP/default.aspx">FTP</category></item><item><title>Introduction</title><link>http://blogs.msdn.com/danielvl/archive/2005/04/08/introduction.aspx</link><pubDate>Fri, 08 Apr 2005 17:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:406675</guid><dc:creator>Daniel Vasquez Lopez</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/danielvl/comments/406675.aspx</comments><wfw:commentRss>http://blogs.msdn.com/danielvl/commentrss.aspx?PostID=406675</wfw:commentRss><description>&lt;P&gt;&lt;FONT&gt;&lt;FONT face=Georgia size=2&gt;Hi there!, I'm a&amp;nbsp;development consultant at MS Mexico. I'd been bloging at &lt;/FONT&gt;&lt;FONT face=Georgia size=2&gt;&lt;A href="http://danielvl.blogspot.com"&gt;http://danielvl.blogspot.com&lt;/A&gt;&amp;nbsp;and now it's time to move to this new home :)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Georgia size=2&gt;I'm going to share whatever I have learned from the CLR, &amp;nbsp;design and some Servers (e.g. BizTalk). Currently, I am working in a earlier implementation of WS-RM and there has been a lot of fun :), I'm going to share some C#/C++&amp;nbsp;code and tools that hope you migh found useful!&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=406675" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/danielvl/archive/tags/MCS/default.aspx">MCS</category><category domain="http://blogs.msdn.com/danielvl/archive/tags/WS-RM/default.aspx">WS-RM</category></item></channel></rss>