<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6548459288910859437</id><updated>2024-09-04T06:16:09.781-07:00</updated><category term="Data Collector Sets"/><category term="Debugging"/><category term="ETW"/><category term="Trace Sessions"/><category term="Windows Event Trace"/><category term="Windows Event Tracing"/><category term="Windows Event Viewer"/><category term="Service Oriented Architecture"/><category term="WCF"/><category term="Distributed components"/><category term="Software Architecture"/><category term="Windows Workflow"/><category term="IIS"/><category term="Moles issues"/><category term="Visual Studio"/><category term="WCF Runtime Extension"/><category term="WCF/Workflow Hosing"/><title type='text'>Software Technology : Deep Dive</title><subtitle type='html'>Software Technology : Deep Dive. An attempt to understand, how software systems and technical stuff works.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://stdeepdive.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6548459288910859437/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://stdeepdive.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Arun Malik</name><uri>http://www.blogger.com/profile/15956288023137519332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6548459288910859437.post-2994091177184604927</id><published>2012-03-31T08:28:00.000-07:00</published><updated>2012-03-31T08:38:18.829-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Data Collector Sets"/><category scheme="http://www.blogger.com/atom/ns#" term="Debugging"/><category scheme="http://www.blogger.com/atom/ns#" term="ETW"/><category scheme="http://www.blogger.com/atom/ns#" term="Trace Sessions"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Event Trace"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Event Tracing"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Event Viewer"/><title type='text'>Working with Windows 7 Event Tracing using .NET:- Part 4</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;a href=&quot;https://docs.google.com/open?id=0B7frxpvRKCAgUkoxdW0yMzVSakdKZkl5X1BncUZ1Zw&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-family: &#39;Calibri&#39;,&#39;sans-serif&#39;; color: gray; text-decoration: none; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: &#39;Times New Roman&#39;; mso-bidi-theme-font: minor-bidi; text-underline: none&quot;&gt;&lt;font size=&quot;3&quot;&gt;Download sample code&lt;/font&gt;&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&lt;span style=&quot;font-family: &#39;Calibri&#39;,&#39;sans-serif&#39;; color: gray; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: &#39;Times New Roman&#39;; mso-bidi-theme-font: minor-bidi&quot;&gt;&lt;?xml:namespace prefix = o ns = &quot;urn:schemas-microsoft-com:office:office&quot; /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0cm 0cm 10pt; background: white&quot; class=&quot;MsoNormal&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-family: &#39;Calibri&#39;,&#39;sans-serif&#39;; color: gray&quot;&gt;&lt;font size=&quot;3&quot;&gt;Links : &lt;a href=&quot;http://stdeepdive.blogspot.com/2012/03/working-with-windows-7-event-tracing_7688.html&quot; target=&quot;_blank&quot;&gt;Part 1&lt;/a&gt;, &lt;a href=&quot;http://stdeepdive.blogspot.com/2012/03/working-with-windows-7-event-tracing.html&quot; target=&quot;_blank&quot;&gt;Part 2&lt;/a&gt;, &lt;a href=&quot;http://stdeepdive.blogspot.com/2012/03/working-with-windows-7-event-tracing_15.html&quot; target=&quot;_blank&quot;&gt;Part 3&lt;/a&gt;&lt;/font&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0cm 0cm 10pt; background: white&quot; class=&quot;MsoNormal&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-family: &#39;Calibri&#39;,&#39;sans-serif&#39;; color: gray&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;/font&gt;&lt;/span&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt; &lt;h2&gt;&lt;font size=&quot;4&quot;&gt;Working with event trace sessions : Create and configuring trace sessions&lt;/font&gt;&lt;/h2&gt; &lt;p&gt; &lt;p&gt;Let see how to create trace sessions using a GUI based controller application. This GUI based controller application is non other than our perfmon.exe. Use the following steps to create new trace session for your custom provider. &lt;/p&gt;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.75in; font-size: 11pt; font-weight: normal&quot; type=&quot;i&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: normal&quot;&gt;Open performance monitor by running the perfmon.exe in command prompt.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.75in; font-size: 11pt; font-weight: normal&quot; type=&quot;i&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot; value=&quot;2&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: normal&quot;&gt;Once performance monitor is opened, browse to Event Trace Sessions tree node. You will see Trace Sessions already configured to listen for event from system event providers. Our goal is to create a similar kind of trace session for our custom provider.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in&quot;&gt;&lt;img alt=&quot;Machine generated alternative text: &amp;lsquo;a Pertorrnance Monitor&lt;br /&gt;(j File Action View Window Help&lt;br /&gt;&amp;bull;*hTU IL ___&lt;br /&gt;Performance 1 Name Status&lt;br /&gt;Monitoring Tools h  Circular Kernel Context Logger Running&lt;br /&gt;Performance Monitor Audio Running&lt;br /&gt;3 Data CollectorSets  Running&lt;br /&gt;&amp;gt;  User Defined&lt;br /&gt;&amp;gt; F. System EventLog-Application Running&lt;br /&gt;J Event Trace Sessions  EventLog-DebugChannel Running&lt;br /&gt;Startup Event Trace Sessions  EventLog-ForwardedEvents Running&lt;br /&gt;&amp;gt; E Reports EventLog-Microsoft-Windows-... Running&lt;br /&gt;AppFabric Event Collector Sessi... Running&lt;br /&gt;EventLog-Microsoft-Windows-... Running&lt;br /&gt;EventLog-Microsoft-Windows-... Running&lt;br /&gt;EventLog-System Running&lt;br /&gt;Microsoft Security Client Running&lt;br /&gt;Microsoft Security Client WMI ... Running&lt;br /&gt;NtfsLog Running&lt;br /&gt;EventLog-Working With ETW P... Running&lt;br /&gt;UBPM Running&lt;br /&gt;WcesLog Running&lt;br /&gt;WdiContextLog Running&lt;br /&gt;WMZuneComm Running&lt;br /&gt;MpWppTracing-03112012-1204... Running&lt;br /&gt;WUDFTrace Running&lt;br /&gt;Trace session for custom provi... Running&lt;br /&gt;EMSMQ Running&lt;br /&gt;SftFS Running&lt;br /&gt;MSDTC_TRAC E_SESSION Running&quot; src=&quot;file:///C:/Users/armalik/AppData/Local/Temp/msohtmlclip1/02/clip_image001.png&quot; width=&quot;376&quot; height=&quot;384&quot;&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.75in; font-size: 11pt; font-weight: normal&quot; type=&quot;i&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot; value=&quot;3&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: normal&quot;&gt;Right click on the right panel and&amp;nbsp; click on New-&amp;gt; Data Collector Set. This will open &#39;Create New Data Collector&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;Set&#39; wizard.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in&quot;&gt;&lt;img alt=&quot;Machine generated alternative text: MSMQ Running&lt;br /&gt;SftFS Running&lt;br /&gt;MSDTC_TRACE_SESSION Running&lt;br /&gt;New Data CollectorSet&lt;br /&gt;Refresh&lt;br /&gt;Export List...&lt;br /&gt;View&lt;br /&gt;Arrange Icons&lt;br /&gt;Line up Icons&lt;br /&gt;Help&quot; src=&quot;file:///C:/Users/armalik/AppData/Local/Temp/msohtmlclip1/02/clip_image002.png&quot; width=&quot;489&quot; height=&quot;327&quot;&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;Wizard window.&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in&quot;&gt;&lt;img alt=&quot;Machine generated alternative text: &amp;mdash;&lt;br /&gt;k7j &amp;reg; Create new Data Collector Set.&lt;br /&gt;How would you like to Create this new data Collector set?&lt;br /&gt;Name:&lt;br /&gt;- Data CollectorI&lt;br /&gt;&amp;lsquo; &amp;lsquo; Create from a template (Recommended)&lt;br /&gt;How cIa I &amp;lsquo;nork with templates?&lt;br /&gt;G Create manually (Advanced)&lt;br /&gt;How do I choose data collectors man n&lt;br /&gt;[ Next 1 [ finish [ Cancel j&quot; src=&quot;file:///C:/Users/armalik/AppData/Local/Temp/msohtmlclip1/02/clip_image003.png&quot; width=&quot;497&quot; height=&quot;384&quot;&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.75in; font-size: 11pt; font-weight: normal&quot; type=&quot;i&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot; value=&quot;4&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: normal&quot;&gt;Provide Trace session name as &#39;Trace session for custom provider&#39;. Click on &#39;Next&#39; to open provider selection wizard view.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in&quot;&gt;&lt;img alt=&quot;Machine generated alternative text: &amp;mdash;&lt;br /&gt;&amp;reg; Create new Data Collector Set.&lt;br /&gt;Which event trace providers would you like to enable?&lt;br /&gt;Eroviders:&lt;br /&gt;[ Afld... ]&lt;br /&gt;[ Remove j&lt;br /&gt;Properijes:&lt;br /&gt;Property value [ edit...&lt;br /&gt;Next ] [ Finish j [ Cancel j&quot; src=&quot;file:///C:/Users/armalik/AppData/Local/Temp/msohtmlclip1/02/clip_image004.png&quot; width=&quot;497&quot; height=&quot;384&quot;&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.75in; font-size: 11pt; font-weight: normal&quot; type=&quot;i&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot; value=&quot;5&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: normal&quot;&gt;Click on &#39;Add&#39; and select your custom provider from the list operating system has enumerated for all the registered providers. Our provider will also be listed here as we have already register it with the system. Click Ok to confirm the provider selection.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in&quot;&gt;&lt;img alt=&quot;Machine generated alternative text: Event Trace Providers _______&lt;br /&gt;Choose Event Trace Provider:&lt;br /&gt;LI&amp;Icirc;1 With ETW Provider&lt;br /&gt;WPC Trace&lt;br /&gt;WPD API Trace&lt;br /&gt;WPD APISQM Trace&lt;br /&gt;WPD Bluetooth MTP Emumerator Driver Trace&lt;br /&gt;WPD BusEnumService Trace&lt;br /&gt;WPD ClassExtension Trace&lt;br /&gt;WPD Classlnstaller Trace&lt;br /&gt;WPD Composite Driver Trace&lt;br /&gt;WPD FSDriver Trace&lt;br /&gt;WPD ShellExtension Trace&lt;br /&gt;WPD ShellServiceObject Trace&lt;br /&gt;WPD Types Trace&lt;br /&gt;WPD WCNCSvc Trace&lt;br /&gt;WPD WCNWizard Trace&lt;br /&gt;WPD WiaCompat Trace&lt;br /&gt;WPD WMflMCnmnat Trare  &lt;br /&gt;[ 0K N Cancel J&quot; src=&quot;file:///C:/Users/armalik/AppData/Local/Temp/msohtmlclip1/02/clip_image005.png&quot; width=&quot;388&quot; height=&quot;384&quot;&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in&quot;&gt;&lt;img alt=&quot;Machine generated alternative text: &amp;reg; Creat&lt;br /&gt;Which event trace providers would you like to enable?&lt;br /&gt;Next ] [ Finish j [ Cancel j&lt;br /&gt;Eroviders:&lt;br /&gt;Working With ETW Provider&lt;br /&gt;Properijes:&lt;br /&gt;[ Agd... j&lt;br /&gt;[ &amp;szlig;emove J&lt;br /&gt;Property&lt;br /&gt;value&lt;br /&gt;Keywords(Any)&lt;br /&gt;Keywords(All)&lt;br /&gt;Level&lt;br /&gt;Properties&lt;br /&gt;4 &lt;br /&gt;0x0&lt;br /&gt;0x0&lt;br /&gt;0x00&lt;br /&gt;0x00000000&lt;br /&gt;&amp;sbquo;&amp;bdquo;&quot; src=&quot;file:///C:/Users/armalik/AppData/Local/Temp/msohtmlclip1/02/clip_image006.png&quot; width=&quot;497&quot; height=&quot;384&quot;&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.75in; font-size: 11pt; font-weight: normal&quot; type=&quot;i&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot; value=&quot;6&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: normal&quot;&gt;Configure the trace session by customizing it to listen for specific keywords and verbosity levels.&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;Select the keywords row from Properties list and click on &#39;Edit&#39; button to view the available keyword name. In our case we see only two keywords which we defined in instrumentation manifest file. &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in&quot;&gt;&lt;img alt=&quot;Machine generated alternative text: Property&lt;br /&gt;G Authmabc&lt;br /&gt;Value Des cription&lt;br /&gt;ApplicabonsDevelopedForBankingDomain&lt;br /&gt;Working With ET\1 Provider/Analytic&lt;br /&gt;[ 0K ] [ Cancel ]&lt;br /&gt;Applications Develc&lt;br /&gt;Working With ETW&lt;br /&gt;&amp;ldquo;,&lt;br /&gt;Manual&lt;br /&gt;0x800000000000000 1&quot; src=&quot;file:///C:/Users/armalik/AppData/Local/Temp/msohtmlclip1/02/clip_image007.png&quot; width=&quot;386&quot; height=&quot;384&quot;&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;Enable the check option for both the keywords values.&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;Similarly configure the required levels as well. After the configuration your wizard view show look as following.&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in&quot;&gt;&lt;img alt=&quot;Machine generated alternative text: &amp;reg; Creat&lt;br /&gt;Which event trace providers would you like to enable?&lt;br /&gt;Eroviders:&lt;br /&gt;Working with ETW Provider [ Afld... j&lt;br /&gt;[ &amp;szlig;emove J&lt;br /&gt;Properties:&lt;br /&gt;Property value A [tZ]&lt;br /&gt;Keywords(Any) 0x8000000000000001&lt;br /&gt;Keywords(All) 0x0&lt;br /&gt;Level 0x11&lt;br /&gt;Properties 0x00000000&lt;br /&gt;4 11E&lt;br /&gt;Next ] [ Finish j [ Cancel j&quot; src=&quot;file:///C:/Users/armalik/AppData/Local/Temp/msohtmlclip1/02/clip_image008.png&quot; width=&quot;497&quot; height=&quot;384&quot;&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;Click on &#39;Next&#39; button.&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.75in; font-size: 11pt; font-weight: normal&quot; type=&quot;i&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot; value=&quot;7&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: normal&quot;&gt;Provide directory path where your want to save the collected events data. What value you give here is important in case you want to view your events using Windows Event Viewer. To view your events using Event Viewer you must provider following directory path to save the events data.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;%SystemRoot%\System32\Winevt\Logs\&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;Wizard view after providing the directory path.&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in&quot;&gt;&lt;img alt=&quot;Machine generated alternative text: &amp;mdash;&lt;br /&gt;&amp;reg; Create new Data Collector Set.&lt;br /&gt;Where would you like the data to be saved?&lt;br /&gt;Root directo,y:&lt;br /&gt;%SystemRoot%\System32Winevt\Logs\J [srowse.JJ&lt;br /&gt;Next Finish 1 [ Cancel j&quot; src=&quot;file:///C:/Users/armalik/AppData/Local/Temp/msohtmlclip1/02/clip_image009.png&quot; width=&quot;497&quot; height=&quot;384&quot;&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;Click on &#39;Next&#39; button.&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.75in; font-size: 11pt; font-weight: normal&quot; type=&quot;i&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot; value=&quot;8&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: normal&quot;&gt;Change the option to &#39;Start this collector set now&#39; as show in below image and click &#39;Finish&#39; button.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in&quot;&gt;&lt;img alt=&quot;Machine generated alternative text: &amp;Oslash; i9 Crete new Dite CollectorSt&lt;br /&gt;Create the data oellector set?&lt;br /&gt;Runas&lt;br /&gt;cDetault&amp;gt;&lt;br /&gt;. Qpen propeitles for this data collector set&lt;br /&gt;t Ra.t this data colector set nod&lt;br /&gt;&amp;bull;:&amp;lsquo;saxeanddose&lt;br /&gt;j fiet [&amp;ETH;nishllCancdl&quot; src=&quot;file:///C:/Users/armalik/AppData/Local/Temp/msohtmlclip1/02/clip_image010.png&quot; width=&quot;497&quot; height=&quot;384&quot;&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;We are done with creating trace session and it is up and running. Ready to listen for the event published by your custom provider.&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in&quot;&gt;&lt;img alt=&quot;Machine generated alternative text: Name Status&lt;br /&gt;Trace session for custom provider Running&lt;br /&gt;CircuIar Kernel Context Logger Running&lt;br /&gt;P.nn;nn&quot; src=&quot;file:///C:/Users/armalik/AppData/Local/Temp/msohtmlclip1/02/clip_image011.png&quot; width=&quot;408&quot; height=&quot;79&quot;&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; font-size: 11pt&quot;&gt;At this point if you run the console application we created, trace session will collect all the published events this application will fire. &lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; font-size: 11pt&quot;&gt; &lt;/p&gt; &lt;blockquote&gt; &lt;h3&gt;Working with Consumer application &lt;/h3&gt;&lt;/blockquote&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; font-size: 11pt&quot;&gt;Once we have create a trace session&amp;nbsp; for a event provider, all the events from that provider are collected via trace sessions and are logged in log files. We will use Windows Event Viewer as Consumer application to view all the published events from our console application. Use the following steps to view the events.&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.75in; font-size: 11pt; font-weight: normal&quot; type=&quot;i&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: normal&quot;&gt;Open Windows Event Viewer by running&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;eventvwr.exe in command prompt.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.75in; font-size: 11pt; font-weight: normal&quot; type=&quot;i&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot; value=&quot;2&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: normal&quot;&gt;Expand &#39;Applications and Services Logs&#39; node. You will see a new entry has been created for the channel you had defined in instrumentation manifest file. Expand &#39;Working with ETW provider&#39; and select &#39;Analytic&#39; node to view all the events published by our console application .&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.75in&quot;&gt;&lt;img alt=&quot;Machine generated alternative text: Eue Action view Help&lt;br /&gt;k Event Viewer (Local)&lt;br /&gt;Custom Views&lt;br /&gt;E Windows Logs&lt;br /&gt;4  Applications and Services Logs&lt;br /&gt;BitLocker-Provisioning-Microsoft-IT&lt;br /&gt;Hardware Events&lt;br /&gt;Internet Explorer&lt;br /&gt;fr] Key Management Service&lt;br /&gt;frj Media Center&lt;br /&gt;&amp;gt; ji Microsoft&lt;br /&gt;fr] Microsoft Office Alerts&lt;br /&gt;j Microsoft-lE&lt;br /&gt;&amp;gt; ji Microsoft-IEDVTOOL&lt;br /&gt;[,  Microsoft-IEFRAME&lt;br /&gt;I MPJLoq&lt;br /&gt;Windows PowerShell&lt;br /&gt;&amp;iquest; i Working With ETW Provider&lt;br /&gt;IR Analytic&lt;br /&gt;fl Saved Logs&lt;br /&gt;; Subscriptions&lt;br /&gt;Analytic Pagel&lt;br /&gt;J&lt;br /&gt;Next Page [ &amp;szlig;acktoTop j&lt;br /&gt;J_i To make this Analytic, Debug or Classic event log easier to navigate and manipulate, first save it in .evtx format by using the&lt;br /&gt;Level&lt;br /&gt;Date and Time&lt;br /&gt;Source&lt;br /&gt;Useful&lt;br /&gt;15-03-2012 01:42:07&lt;br /&gt;Working With ETW Provider&lt;br /&gt;Useful&lt;br /&gt;L&lt;br /&gt;15-03-2012 17:09:52&lt;br /&gt;Working With ETW Provider&lt;br /&gt;&amp;bdquo;&lt;br /&gt;Event 1, Working With ETW Provider&lt;br /&gt;E &amp;amp;a I D eta&lt;br /&gt;Person Eat Event. Person First Name Arun, Person Last Name Malik&lt;br /&gt;X&lt;br /&gt;Log Name:&lt;br /&gt;Source:&lt;br /&gt;Event ID:&lt;br /&gt;Level:&lt;br /&gt;User&lt;br /&gt;QpCode:&lt;br /&gt;More Information:&lt;br /&gt;L&lt;br /&gt;Working With ETW Provider/Analytic&lt;br /&gt;Working With ETW Provider Logge4: 15-03-2012 01:42:07&lt;br /&gt;1 Task Category Component Person&lt;br /&gt;Useful Keywords:&lt;br /&gt;Computer&lt;br /&gt;Operation Eat&lt;br /&gt;Event Log Online Help&quot; src=&quot;file:///C:/Users/armalik/AppData/Local/Temp/msohtmlclip1/02/clip_image001.png&quot; width=&quot;565&quot; height=&quot;382&quot;&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://stdeepdive.blogspot.com/feeds/2994091177184604927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://stdeepdive.blogspot.com/2012/03/working-with-event-trace-sessions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6548459288910859437/posts/default/2994091177184604927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6548459288910859437/posts/default/2994091177184604927'/><link rel='alternate' type='text/html' href='http://stdeepdive.blogspot.com/2012/03/working-with-event-trace-sessions.html' title='Working with Windows 7 Event Tracing using .NET:- Part 4'/><author><name>Arun Malik</name><uri>http://www.blogger.com/profile/15956288023137519332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6548459288910859437.post-5003003114369643437</id><published>2012-03-28T07:40:00.000-07:00</published><updated>2012-03-28T07:42:03.266-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Moles issues"/><title type='text'>Issue with Moles : Not able to read unit test configuration file when test case method is set to run under Moles host type.</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;While writing unit test cases using moles to create fake objects, I came across an issue where, test methods were not able to the configuration file provided for unit test case assembly. This issue was occurring only when the test method were marketed with HostType(&quot;Moles&quot;) attribute.&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;I verified the location of configuration file being used by checking the properties of AppDomain in which the test case method was running. Following is a screen shot of what I show. &lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMfTJ6M5RAie69WIDrXRwrOwdRkBKTzryl7USDSuowDkLIGN_-MJDL90OGLFnSF4mLK0sv5ppm4u_5_BuugCB4IL6qlI239TpVPvRhG-yGp3ynaK_GzulPqI4pxbBoj2gPRLFIPTLAT8U/s1600-h/clip_image001%25255B2%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;clip_image001&quot; border=&quot;0&quot; alt=&quot;clip_image001&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXP2sDIRTOvZ01DCwFOYyYYHWrZScTGZJQiRliUPotcEaCDOwSg1aWlGiJr9Cdj6cKntfWMDQJ7Y07n9ViXbbKdp25i3_rHpzAErgFlfhkeU4cJkjWnIOhkTzOEwAfFSmmXPwyZl9tiHM//?imgmax=800&quot; width=&quot;244&quot; height=&quot;133&quot;&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;It is clear from screen shot that the AppDomain was setup to use &quot;Microsoft.Moles.VsHost.x86.exe.config&quot; configuration file instead of using configuration file generated for the unit test case assembly. &lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;After performing some debugging , I could find out that the problem was with the moles executable which I had installed using standalone moles installer. When you install moles using in standalone installer, moles instrumentation runtime (Microsoft.Moles.VsHost.x86.exe)does not set the AppDomain to use right config file (test assembly config), Instead AppDomain is set to use the configuration file of moles runtime executable.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;To resolve this issue , I installed moles using Pex installer (&lt;a href=&quot;http://research.microsoft.com/en-us/downloads/d2279651-851f-4d7a-bf05-16fd7eb26559/default.aspx&quot; target=&quot;_blank&quot;&gt;download&lt;/a&gt;). when you install moles using Pex installer, moles runtime executable does set AppDomain to use right configuration file (config file of unit test assembly). See the below screen shot , ConfigurationFile&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;property is now referring to unit test assembly&#39;s config file path.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu0kufL7QoKlH-MqPXwhJork2LYi0lxDsLNNPgPIIodsYJ8C5mvi_YDYEkQXWz33jyJpdtkq6dIFpewB-BGmUTMt5PVhf4lp0NkU__MmaeByDE3UU2_HZiaP3tN2qIoSQq5OHH4t61Zm0/s1600-h/clip_image002%25255B2%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;clip_image002&quot; border=&quot;0&quot; alt=&quot;clip_image002&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8VqLgnp5zzxpdkllPJg-hzVxQgmtI0OKYZkKiw738ZiRVd1tO75aGL2SS9472-BNPUDXSMsAH7aW_yT9sICfgE2EPLfRNEwCjUBMhk5bS2GWEl7k69xWEWt6InQ-i_c1Hd63Y6Wd-CfU//?imgmax=800&quot; width=&quot;244&quot; height=&quot;133&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;Hence , using moles installed through Pex installer allows&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;the test cases to happily read the config information provided in test case assembly&#39;s config file.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://stdeepdive.blogspot.com/feeds/5003003114369643437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://stdeepdive.blogspot.com/2012/03/issue-with-moles-not-able-to-read-unit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6548459288910859437/posts/default/5003003114369643437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6548459288910859437/posts/default/5003003114369643437'/><link rel='alternate' type='text/html' href='http://stdeepdive.blogspot.com/2012/03/issue-with-moles-not-able-to-read-unit.html' title='Issue with Moles : Not able to read unit test configuration file when test case method is set to run under Moles host type.'/><author><name>Arun Malik</name><uri>http://www.blogger.com/profile/15956288023137519332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXP2sDIRTOvZ01DCwFOYyYYHWrZScTGZJQiRliUPotcEaCDOwSg1aWlGiJr9Cdj6cKntfWMDQJ7Y07n9ViXbbKdp25i3_rHpzAErgFlfhkeU4cJkjWnIOhkTzOEwAfFSmmXPwyZl9tiHM/s72-c/?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6548459288910859437.post-7152076242526379965</id><published>2012-03-15T13:20:00.000-07:00</published><updated>2012-03-15T13:21:28.668-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Data Collector Sets"/><category scheme="http://www.blogger.com/atom/ns#" term="Debugging"/><category scheme="http://www.blogger.com/atom/ns#" term="ETW"/><category scheme="http://www.blogger.com/atom/ns#" term="Trace Sessions"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Event Trace"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Event Tracing"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Event Viewer"/><title type='text'>Working with Windows 7 Event Tracing using .NET:- Part 3</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;span style=&quot;font-family: &#39;Calibri&#39;,&#39;sans-serif&#39;; color: gray; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: &#39;Times New Roman&#39;; mso-bidi-theme-font: minor-bidi&quot;&gt;&lt;a href=&quot;https://docs.google.com/open?id=0B7frxpvRKCAgUkoxdW0yMzVSakdKZkl5X1BncUZ1Zw&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-style: normal; color: gray; text-decoration: none; text-underline: none&quot;&gt;&lt;font size=&quot;3&quot;&gt;Download sample code&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;?xml:namespace prefix = o ns = &quot;urn:schemas-microsoft-com:office:office&quot; /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;span style=&quot;font-family: &#39;Calibri&#39;,&#39;sans-serif&#39;; color: gray&quot;&gt;&lt;font size=&quot;3&quot;&gt;Links : &lt;a href=&quot;http://stdeepdive.blogspot.com/2012/03/working-with-windows-7-event-tracing.html&quot; target=&quot;_blank&quot;&gt;Part 1&lt;/a&gt;, &lt;a href=&quot;http://stdeepdive.blogspot.com/2012/03/working-with-windows-7-event-tracing_15.html&quot; target=&quot;_blank&quot;&gt;Part 2&lt;/a&gt;, Part 4&lt;/font&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt; &lt;h2&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;&quot;&gt;&lt;font size=&quot;5&quot;&gt;&lt;font color=&quot;#365f91&quot;&gt;&lt;font face=&quot;Cambria&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/h2&gt; &lt;h2&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;&quot;&gt;&lt;font size=&quot;5&quot;&gt;&lt;font color=&quot;#365f91&quot;&gt;&lt;font face=&quot;Cambria&quot;&gt;Creating Event Provider Assembly and using it in your application.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/h2&gt; &lt;h2&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;&quot;&gt;&lt;font size=&quot;5&quot;&gt;&lt;font color=&quot;#365f91&quot;&gt;&lt;font face=&quot;Cambria&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/h2&gt; &lt;h2&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;&quot;&gt;&lt;font size=&quot;5&quot;&gt;&lt;font color=&quot;#365f91&quot;&gt;&lt;font face=&quot;Cambria&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/h2&gt; &lt;h2&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;&quot;&gt;&lt;font size=&quot;5&quot;&gt;&lt;font color=&quot;#365f91&quot;&gt;&lt;font face=&quot;Cambria&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/h2&gt; &lt;p&gt;In this article I will show you how to generate .NET c# provider code using MC.exe and compile the generated code into an assembly so that you can easily use that assembly in any of your application to write the events which you have defined in the manifest file.  &lt;p&gt;Follow these steps to generate the provider code in .NET and to compile the code into a .NET assembly. &lt;p&gt;1. Generate .NET c# code with the help of the manifest xml file we have already created. Generated c# code is completely type safe and you do not need to worry about all the constants their values and where to use all those in the code. All this is handled by MC.exe. Use the following command in visual studio 2010 to generate the provider code in c# language. &lt;p&gt;MC.exe -h &amp;lt;target location&amp;gt; &amp;lt;namespace name for generated class&amp;gt; &amp;lt;manifest xml file path&amp;gt; &lt;p&gt;MC.exe -h c:\ProviderFiles CustomProvider c:\ProviderFiles\EventProviderManifest.xml &lt;p&gt;You will see the generated c# class file in your target location. Something similar to the following. &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv5_Qe0ssECD75WXFvPEzMzTLS4nA4A47gc_H6rPvAzxuEEIAGW8_Kfz8SdFAE3d3LCqCoxJfNIakbSfCAk0JlcvEg0OHF1qzD8GlaKZlR1hLSlubz0ws7cizziX3LyEtkhDBP2i7Tpw4/s1600-h/clip_image002%25255B3%25255D.jpg&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;clip_image002&quot; border=&quot;0&quot; alt=&quot;clip_image002&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_1psch_qKnNveJogvG22bAqi6itFnXMSDph30Zfdx_zijtQ4eivB4cq__wJqLvf7g25PMI4__BTg-mCJSCYKobEo6IVwpryQaQl53LUiYuTpkY4wowU95c4vIQuDuzic3kEVNMNKaLos//?imgmax=800&quot; width=&quot;244&quot; height=&quot;82&quot;&gt;&lt;/a&gt; &lt;p&gt;2. Generate an assembly by compiling the generated C# class file. Use the following in visual studio 2010 command prompt. &lt;p&gt;Csc.exe /out:c:\ProviderFiles\CustomProvider.dll /unsafe /t:library c:\ProviderFiles\EventProviderManifest.cs &lt;p&gt;You will see the generated assembly file in your target location. Something similar to the following. &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic3Pcv146tmiSxg4dAh3-0CFqF46YeJiAz1oVVsg4Hw9y4gy9L0SmCJ9KYb_rhgv5MUfKy10iK6oSVQ3LMpDXGpAGgf1HyvhcjHFR5kyuWWyeRmKtsIuG_3Cez19cqbNMGtjhMJcvLfmk/s1600-h/clip_image003%25255B3%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;clip_image003&quot; border=&quot;0&quot; alt=&quot;clip_image003&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtH6jLDdU6oqlgGA4dV2a9bj3m7UT6Xt25ocTWwzw_IgJEBOCAasUuNF6X8CiJ4gTOWcMsSbVzxNowigSs917rbwyhX53lelwjMRWtaUmy4OAeav-SkuVk-jMzFUxGCsRqlRjvwnB_ntE//?imgmax=800&quot; width=&quot;244&quot; height=&quot;88&quot;&gt;&lt;/a&gt; &lt;h5&gt;Congratulation!&lt;/h5&gt; &lt;p&gt; You have just created a custom windows event provider assembly which can be loaded in any of your .NET application to publish all your events defined in the instrumentation manifest file. &lt;p&gt;Let’s use the provider assembly we have just created in a .NET application to publish the events. I am creating a simple console based application which will publish person eat event. Code of console application is present in MyApplicationUsingMyProvider.cs file. Following is the code snippet for console application. &lt;p&gt;using System; &lt;p&gt;namespace MyApplicationUsingMyProvider &lt;p&gt;{ &lt;p&gt;class Program &lt;p&gt;{ &lt;p&gt;static void Main(string[] args) &lt;p&gt;{ &lt;p&gt;CustomProvider.PROVIDER_GUID provider = new CustomProvider.PROVIDER_GUID(); &lt;p&gt;provider.EventWritePERSON_EAT_EVENT(&quot;Arun&quot;, &quot;Malik&quot;); &lt;p&gt;Console.WriteLine(&quot;Event published successfully.&quot;); &lt;p&gt;Console.WriteLine(&quot;Press any to exit...&quot;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;p&gt;Console.ReadLine(); &lt;p&gt;} &lt;p&gt;} &lt;p&gt;} &lt;p&gt;Note that how the MC.exe has used the symbol value from &amp;lt;Provider/&amp;gt; element from manifest xml to generate the class name. Refer Part 2 &lt;p&gt;Let’s compile the MyApplicationUsingMyProvider.cs into a console application and run it. Use following commands in visual studio 2010 command prompt. &lt;p&gt;Csc.exe /out:&amp;lt;target exe path&amp;gt; /r:&amp;lt;path of custom provider dll&amp;gt; /t:exe &amp;lt;console app cs file path&amp;gt; &lt;p&gt;csc.exe /out:c:\ProviderFiles\MyApplicationUsingMyProvider.exe /r:c:\ProviderFiles\CustomProvider.dll /t:exe c:\ProviderFiles\MyApplicationUsingMyProvider.cs &lt;p&gt;You will see the generated console application in your target location. Something similar to following. &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr2Zb7N3A-im8rZf46wc8XWnLVS5EWNCONEf_D8eYwh4z8YJrQwx3kJ2rfr48aAWSePQwOPO-B0baTmBywDAatYmfyP3bscliNLbMBptlks_a1yWwwOzjKQeX3se-h0kTIMv6FW_Dmeo8/s1600-h/clip_image004%25255B3%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;clip_image004&quot; border=&quot;0&quot; alt=&quot;clip_image004&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA3Z0W_HYqKw0YPGzOgztuaUlXr4oyPeTyr8V4p8m1HYIj6FENtBaLTANvOt5FVA-LBG10pgoPCqs5k08HSGAyQU-YxBHHzEsy8OJK6WHU7FbzrGIEDAbcjNCshOcENecoQ49DMDaDhOk//?imgmax=800&quot; width=&quot;244&quot; height=&quot;107&quot;&gt;&lt;/a&gt; &lt;p&gt;So, we have successfully created a custom provider and used it in a simple console based application. If you run that application and try to see the published events in either windows event viewer or any of the consumer application, you will be disappointed. Reason is that there is no link has been established yet between the consumer applications and your provider. This link is Trace session and we need to create one which will listen for the published events from our custom provider. In the Part 4 of this series I will show you how to use one of the GUI based controller application to create and configure Trace session which will listen and collect the published events from your provider. &lt;p&gt;&lt;span style=&quot;font-family: &#39;Calibri&#39;,&#39;sans-serif&#39;; color: gray&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;em&gt;Links : &lt;/em&gt;&lt;a href=&quot;http://stdeepdive.blogspot.com/2012/03/working-with-windows-7-event-tracing.html&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;Part 1&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, &lt;/em&gt;&lt;a href=&quot;http://stdeepdive.blogspot.com/2012/03/working-with-windows-7-event-tracing_15.html&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;Part 2&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, Part 4&lt;/em&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://stdeepdive.blogspot.com/feeds/7152076242526379965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://stdeepdive.blogspot.com/2012/03/working-with-windows-7-event-tracing_7688.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6548459288910859437/posts/default/7152076242526379965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6548459288910859437/posts/default/7152076242526379965'/><link rel='alternate' type='text/html' href='http://stdeepdive.blogspot.com/2012/03/working-with-windows-7-event-tracing_7688.html' title='Working with Windows 7 Event Tracing using .NET:- Part 3'/><author><name>Arun Malik</name><uri>http://www.blogger.com/profile/15956288023137519332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_1psch_qKnNveJogvG22bAqi6itFnXMSDph30Zfdx_zijtQ4eivB4cq__wJqLvf7g25PMI4__BTg-mCJSCYKobEo6IVwpryQaQl53LUiYuTpkY4wowU95c4vIQuDuzic3kEVNMNKaLos/s72-c/?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6548459288910859437.post-4396434882265649408</id><published>2012-03-15T12:51:00.000-07:00</published><updated>2012-03-15T13:23:34.343-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Data Collector Sets"/><category scheme="http://www.blogger.com/atom/ns#" term="Debugging"/><category scheme="http://www.blogger.com/atom/ns#" term="ETW"/><category scheme="http://www.blogger.com/atom/ns#" term="Trace Sessions"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Event Trace"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Event Tracing"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Event Viewer"/><title type='text'>Working with Windows 7 Event Tracing using .NET:- Part 2</title><content type='html'>&lt;p&gt;&lt;em&gt;&lt;span style=&quot;font-family: &#39;Calibri&#39;,&#39;sans-serif&#39;; color: gray&quot;&gt;&lt;/span&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://docs.google.com/open?id=0B7frxpvRKCAgUkoxdW0yMzVSakdKZkl5X1BncUZ1Zw&quot;&gt;Download sample code&lt;/a&gt;&lt;/em&gt;  &lt;p&gt;&lt;em&gt;&lt;/em&gt;&amp;nbsp; &lt;p style=&quot;margin: 0cm 0cm 10pt; background: white&quot; class=&quot;MsoNormal&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-family: &#39;Calibri&#39;,&#39;sans-serif&#39;; color: gray&quot;&gt;&lt;font size=&quot;3&quot;&gt;Links : &lt;a href=&quot;http://stdeepdive.blogspot.com/2012/03/working-with-windows-7-event-tracing.html&quot; target=&quot;_blank&quot;&gt;Part 1&lt;/a&gt;, &lt;a href=&quot;http://stdeepdive.blogspot.com/2012/03/working-with-windows-7-event-tracing_7688.html&quot; target=&quot;_blank&quot;&gt;Part 3&lt;/a&gt;, Part 4&lt;/font&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0cm 0cm 10pt; background: white&quot; class=&quot;MsoNormal&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-family: &#39;Calibri&#39;,&#39;sans-serif&#39;; color: gray&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;/font&gt;&lt;/span&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt;&lt;em&gt;&lt;span style=&quot;font-family: &#39;Calibri&#39;,&#39;sans-serif&#39;; color: gray&quot;&gt; &lt;h2 style=&quot;margin: 10pt 0cm 0pt&quot;&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;&quot;&gt;&lt;font size=&quot;4&quot;&gt;&lt;font color=&quot;#4f81bd&quot;&gt;&lt;font face=&quot;Cambria&quot;&gt;Working with Windows Instrumentation Manifest file&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/h2&gt; &lt;h2 style=&quot;margin: 10pt 0cm 0pt&quot;&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;&quot;&gt;&lt;font size=&quot;4&quot;&gt;&lt;font color=&quot;#4f81bd&quot;&gt;&lt;font face=&quot;Cambria&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/h2&gt; &lt;h2 style=&quot;margin: 10pt 0cm 0pt&quot;&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;&quot;&gt;&lt;font size=&quot;4&quot;&gt;&lt;font color=&quot;#4f81bd&quot;&gt;&lt;font face=&quot;Cambria&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/h2&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;In this article, we will see how to create an instrumentation manifest file from scratch by defining a custom provider metadata and its supported events metadata in an xml file. We will use predefined xml elements and attributes for doing this. &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Let’s create a blank xml file and add required elements one by one. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;&lt;strong&gt;Add Element to Identify Provider: &lt;/strong&gt;You can put more than one Provider information in single instrumentation manifest. To identify a particular provider, we use &amp;lt;Provider/&amp;gt; element and specify the values for following attributes.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Name: Name of your provider. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Guid: GUID to uniquely identity this provider in the system. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;resourceFileName: Path of assembly in which the resource file generated after the compilation of &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;manifest file is embedded. We will see how the compile the manifest file. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;messageFileName: Path of assembly in which the message file generated after the compilation of manifest file is embedded. We will see how the compile the manifest file. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Symbol: Used to refer the class of this provider in the code generated by MC.exe (manifest compiler). &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Message: The localized display name for the provider. The message string references a localized string in the &lt;/font&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/windows/desktop/aa384131(v=vs.85).aspx&quot;&gt;&lt;font size=&quot;3&quot;&gt;stringTable&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;3&quot;&gt; section of the manifest. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Sample xml snippet: &lt;/font&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVbuthTQ5RdADLqYo_ge2-cH2w0W5awICH8XomdjX8iISjt8iOSBxl6hSyho5UWQkpAIhdFO1eIO0Fw7uV2TDfrNIFKVrKDCVl2F2dJgSGZNPRmDI7bRiDT4PwsA-XQjZ62nx74sKCfn8/s1600-h/clip_image002%25255B3%25255D.jpg&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image002&quot; border=&quot;0&quot; alt=&quot;clip_image002&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpW4oJA66MMRoY0LWVDNtgkMW7PL7Ot8z3tughOeU6NkS-KzTwGSLQCm0ZV6pmqUwobMr2-AZcSSJij87rwY5KQxv7Y6SjbaA7HSs23Uvx9WhrmPg1xBOV2DIAoLSolQUg7DkK2XxhRGk//?imgmax=800&quot; width=&quot;244&quot; height=&quot;151&quot;&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;3&quot;&gt; &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;&lt;b&gt;Add Element to define channels:&lt;/b&gt; Channels are used by Consumer applications like Windows Event Viewer to collect events for certain group of audiences. You use &amp;lt;channel /&amp;gt;Element to define new channels. Values for the following attributes must be provided in each &amp;lt;channel/&amp;gt; element. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Chid: An id to uniquely identify the channel in the list of channels defined under a provider. This same attribute is used to attach the channel with specific event type defined using &amp;lt;Instrumentation\Events\Provider\Event/&amp;gt; element. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Name: Name of channel, must be unique among all the channels defined in same provider element. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Type: This value can be set to one the four types: Admin, Analytic, Debug and Operational. Component should write events under correct channel types, as each channel type is used by different set of audiences to analyses the application issues. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Enabled: To specify if the channel is enabled or not. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Isolation: Isolation level defines access permissions for the channel. There are three isolations are available: Application, System and Custom. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Message: The localized display name for the channel. The message string references a localized string in the &lt;/font&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/windows/desktop/aa384131(v=vs.85).aspx&quot;&gt;&lt;font size=&quot;3&quot;&gt;stringTable&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;3&quot;&gt; section of the manifest. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Sample xml snippet: &lt;/font&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgci9biL6fKUmDS2JKWFALSVE4c3prvoXVeg1Fu9LpL5-hvUeZJKvpjHDmEBJSSpVU7Kcbjx77evK3GB3G_RIIE5F6Pcp6cKeZ0Jh-Eloxqo0S91-vkcYEGGbB6x2ZMzIS6HLMNdYYDzJw/s1600-h/clip_image004%25255B3%25255D.jpg&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image004&quot; border=&quot;0&quot; alt=&quot;clip_image004&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN-uoa_U7CB1d8OesLh2R1FeLwb7br7Qns2EWAO1jVuEYLZQ0u2ybtuZP7sbn0Z6vYsThhQrwVOKk-K4L2hWpCRVnsUQiTOLTKCrzP0jydR19T7bEN_MUNeAmwXpEQZeq1aieSWbSaXGU//?imgmax=800&quot; width=&quot;244&quot; height=&quot;217&quot;&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;3&quot;&gt; &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;&lt;b&gt;Add Element to define Severity levels:&lt;/b&gt; Severity levels are used to group the published events. These are also used by consumer applications to query the events and trace session uses them to limit the events which are provided to consumer applications in real time or written in log files. You use &amp;lt;level /&amp;gt;Element to define new levels. Values for following attributes must be provided in each new level element. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Name: Name of the Level. Must be unique among all the levels defined under same provider. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Value: Level value. It can be between 16 to 225. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Symbol: Used to refer the constant created for this Level in the code generated by MC.exe (manifest compiler). &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Message: The localized display name for the channel. The message string references a localized string in the stringTable section of the manifest. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Sample xml snippet: &lt;/font&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwDrHOwMISbVHZFUTTQSxdz93sap6TrUX8UmCCl5vx9kkddJy_rMON4ps5MnLj6NJQsZthN1Vb228_KpA4xkFHbiIHn2oaj48lwibRxSRxCy4DsJSeryIgJiTJCjR4-iIXLNTXuDjVl04/s1600-h/clip_image006%25255B3%25255D.jpg&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image006&quot; border=&quot;0&quot; alt=&quot;clip_image006&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgu86kU8NVpNPbnIjvhn5TbDOSj11dyblZX8IAaSxnnfgVq60Z93QbcqOpoPtiIZx1GjAXVNTxEG7Loqo2HXiIJlwUBGpsK5BV-XEyu30XrmmrLj33N5tbW8H6RTGhvxZwI_1SpCicwdlU//?imgmax=800&quot; width=&quot;244&quot; height=&quot;230&quot;&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;3&quot;&gt; &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;&lt;b&gt;Add Element to define task and opcodes:&lt;/b&gt;&lt;b&gt; &lt;/b&gt;Tasks and opcodes (operation codes) are used to logically group the published events. You define new tasks for each component of your application and a new opcode for each type of operation performed in that component. Because of this grouping consumer applications can easily query for events published for particular operations performed in particular component. You use &amp;lt;task /&amp;gt;Element to define a new tasks and use &amp;lt;opcode /&amp;gt; element to define task specific operation codes. Values for the following attributes must be provided in each new &amp;lt;Task/&amp;gt; element.&amp;nbsp; &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Name: Name of the Task. Must be unique among all the levels defined under same provider. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Symbol: Used to refer the constant created for this Task in the code generated by MC.exe (manifest compiler). &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Value: Value assigned to the Task. It can be between 1 to 239. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Message: The localized display name for the channel. The message string references a localized string in the stringTable section of the manifest. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Sample xml snippet: &lt;/font&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAMoDWBSDiJcW6V4SNpr5S5vDWFBjOcHCxlp1_A_ztL39wjv4hU1gIhUXNviKtz_-nxGTaLtKV3F4Yp7hPuff_iKYNcpUlOunsr2ZsT478xnhfcZRcOC0E-dGnwnA2qDGX7L-X1LsIrqg/s1600-h/clip_image008%25255B3%25255D.jpg&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image008&quot; border=&quot;0&quot; alt=&quot;clip_image008&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimbBbYIyCio-hc5WFyr3yRF1AZBUKahPdJWSprTrYPzyQm25M-SRmEunLB6bkI2R1L7WyYrsbmF8UrKKIfAGjj9j-Q9NIAuKKqUKKoFecoJ7_YeVGJEGMTKobHE5y4fPFs0VBlE2aPk7c//?imgmax=800&quot; width=&quot;244&quot; height=&quot;201&quot;&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;3&quot;&gt; &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;&lt;b&gt;Add Element to define Keywords:&lt;/b&gt; Keywords are used to classify different types of events. You might create one keyword to classify all your database accesses in your application and another one to classify write accesses to the database. You associate keywords with events when you define new events using &amp;lt;event&amp;gt; element. Keywords are used by consumer applications to limit the number of events it listens for. You use &amp;lt;keyword /&amp;gt; element to define a new keywords. Values for the following attributes must be provided in each new &amp;lt;keyword /&amp;gt; element. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Name: Name of the Keyword. Must be unique among all the Keywords defined under same provider. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Mask: Bit value assigned to the Keyword. This value is checked by Trace Sessions to limit category of events they want to listen for. You can specify bit values in the range from 0x0000000000000001 through 0x0000800000000000 (bits 0 through 47). &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Symbol: Used to refer the constant created for this Keyword in the code generated by MC.exe (manifest compiler). &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Message: The localized display name for the channel. The message string references a localized string in the stringTable section of the manifest. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Sample xml snippet: &lt;/font&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCD2tcMpGrDu4Zegj_jVDJfj0Satk9EIgv2d0ayn1TLvYB1J8vr4l872RNVlhPOwJUNsoKZD_iRB4o15RO2nel1QGN7BALgTThoixTRCTyvbztN_OuKLPfwX_uiintx0mbanlhENQPt-M/s1600-h/clip_image010%25255B3%25255D.jpg&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image010&quot; border=&quot;0&quot; alt=&quot;clip_image010&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpFZR8c7CGcyDMegY6JHRQj4Tq2QYdYbZMoC9eUTiXoU7Lynil_qhVz6KYXTuAszcUSobx24DF65AtT3Gk1_Z3PI07XzyQYSWddDCVG9LKT0iC-z_fC3XwcMLRPXFxNnOlxKhLEXAi2ho//?imgmax=800&quot; width=&quot;244&quot; height=&quot;199&quot;&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;3&quot;&gt; &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;&lt;b&gt;Add Element to define event data Template:&lt;/b&gt; Each published event carry some data with it. This data has specific meaning in the context of published event. You use &amp;lt;template /&amp;gt; element to define a new data template. Values for the following attributes must be provided in each new &amp;lt;template /&amp;gt; element and use &amp;lt;data /&amp;gt; element to define template specific data items. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Attributes of Template element &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Tid: unique identifier of the template defined in the provider. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Attributes of Data element. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Name: Name assigned to the data item. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Type: Data type for the data item. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Sample xml snippet: &lt;/font&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBMupxapjj2XP_ib184hadaAXmst8iaz3i5TXyPd37E_UFkrkG9bb28k0R4v2TG8kTGY1u7KjHIfde1UXif0gokc6R8FnUMw0DyJh9NS1P2f0n54bkZhrmm73Yk9eDcyZxp4qd8NnhABM/s1600-h/clip_image012%25255B3%25255D.jpg&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image012&quot; border=&quot;0&quot; alt=&quot;clip_image012&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpjGUuRBJcOo-r0kuYGZHNReyEOz_sUGlEYO010wjzCEvk7c-lUB7xAxn9cXD2FR-ZnMJMX276EEB3CKE9vjwzz7LsUEGFyiBL6Yc3JT2v5zpkcsVcMUBmjA9ffzCtwyV7Z3W_sni-c9E//?imgmax=800&quot; width=&quot;244&quot; height=&quot;182&quot;&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;3&quot;&gt; &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;&lt;b&gt;Add element to define Events: &lt;/b&gt;Each provider defines all the events it can publishes in manifest file. You use &amp;lt;event/&amp;gt; element to define each new event. Attributes you set in &amp;lt;event/&amp;gt; element are based on who is going to consume your published events. Following are attributes you set in &amp;lt;event/&amp;gt; element. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Value: The event identifier. The identifier must be unique within the list of events that you define for your provider. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Level: Level of verbosity. This value either comes for the Levels you have defined or from the level predefined in winmeta.xml. If your event is targeting Admin channel, you cannot use your custom level value. Only possible values for Admin channel events are win:Critical, win:Error,win:Warning and win:Information. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Symbol: Used to refer the event descriptor created for the event in the code generated by MC.exe (manifest compiler). &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Message: The localized display name for the channel. The message string references a localized string in the stringTable section of the manifest. To add event specific data items in message use substitution parameters. For Example to use third data item in you message use %3. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Template: An identifier of the template that defines all the data items an event can carry along with it. Specify the identifier of a template that you defined in the manifest. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Task: The name of a task that identifies the component or subcomponent that generates this event. Specify the name of a task that you defined in the manifest. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Opcode: The name of an opcode that identifies an operation within the task. Specify the name of an opcode that you defined in the manifest or one of the opcodes defined in Winmeta.xml. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Channel: If your users are going to Windows Event Viewer to view your published events, this attribute should be set with one of the channel you have defined manifest. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Sample xml snippet: &lt;/font&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwmKB0bChh2QLf5_mO57J_0ris0GrfRCzs6ug0db8ruvSLc-Mn-qeKibENQBY9z3kyLkEz_TcddCSZwInnOjCnrN5BVOMf1wKeAKP-WVIl3iLozDVyB2dM8J7Pmfb5GS35NA71toILnZQ/s1600-h/clip_image014%25255B3%25255D.jpg&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image014&quot; border=&quot;0&quot; alt=&quot;clip_image014&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKFri95ZPGEAzCV725B_748dVQ4bwr4TRPWZIv8iRL69yaemJo-J_40gwm4p-4NjuWkkYHh5j85YZLeN5iMrQRM5veplQu-l1A010mYgESAisAv5Rz1sdeWT_PEGZSSGP9uWfwQE-Kw0A//?imgmax=800&quot; width=&quot;244&quot; height=&quot;202&quot;&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;3&quot;&gt; &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Download complete manifest file from &lt;/font&gt;&lt;a href=&quot;https://docs.google.com/open?id=0B7frxpvRKCAgUkoxdW0yMzVSakdKZkl5X1BncUZ1Zw&quot; target=&quot;_blank&quot;&gt;&lt;font size=&quot;3&quot;&gt;sample code&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;3&quot;&gt;. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;At this stage, we have successfully completed an instrumentation manifest file. Next step is to register all the information defined in manifest file with Operating system. Once registered, operating system can fetch this information at the time you create new trace sessions or in inside Event Viewer to parse your message data elements and show them at proper places in the view. &lt;/font&gt; &lt;h6&gt;&lt;font size=&quot;3&quot;&gt;Follow these steps to register the manifest with operating system.&lt;/font&gt;&lt;/h6&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;1. Compile the manifest file and generate message file. Use following command in visual studio 2010 command prompt. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;MC.exe -r &amp;lt;target location&amp;gt; &amp;lt;manifest file path&amp;gt; &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;MC.exe -r c:\ProviderFiles EventProviderManifest.xml &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;You will see the generated files in your target location. Something similar to the following &lt;/font&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigaXIDpMjDlcAehUAc42kvRgokf6BDj-hUL0f9n6_Ive3jVh1m9WXoTC3-xwKh1MXHEDL-kKKDHbyfu6PbF7l9XivC8OmMnMkXdlYwqH5EKWCgY1yCIV8v5VnKMgj79eEF3NSCyhyfxkw/s1600-h/clip_image015%25255B3%25255D.png&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image015&quot; border=&quot;0&quot; alt=&quot;clip_image015&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLAwkgsWCtfKQuhwwUQSSjhOIWlM2UFwiFH8VuLo1ntoZB8bPmE3XaAxQdZvm2rVEqExskvIV_FyEbySGdww9Jq3kZCENriInApKMd-Z-JEcVFpvB2hTDfTEHKiaDedbL_En6Ght7onPI//?imgmax=800&quot; width=&quot;244&quot; height=&quot;44&quot;&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;3&quot;&gt; &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;2. Generate native resource file from message file you just created in above step. Use following command in visual studio 2010 command prompt. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;RC.exe &amp;lt;message file path&amp;gt; &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;RC.exe c:\ProviderFiles\EventProviderManifest.rc &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;You will see the generated native resource file in your target location. Something similar to the following. &lt;/font&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht3goXeGYJzgrmqbaoApxVTfNLVQOYUH9m3GTbAlXZ4D9H0OzjNGkS0nuM0UI5RinCjUfmG1V7Axog-9TnXaFlB0bFYSOJ8GbNtOkkWohrGxKygmNwa4xb91CTntDx92XruIVPPvUkjKo/s1600-h/clip_image017%25255B3%25255D.jpg&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image017&quot; border=&quot;0&quot; alt=&quot;clip_image017&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOOPxC8Is1s0YCk2QlZ1XN9h7Y2u0eJ3vLXGgpDLt7wr9bP1kquS78k3EOpxV01AW5IDJO2JXxpAMaH-Mkxj7bWjDeyZTt4QkdmSz_TyolWPbaFNpOYnrWSb0ZHRqhXOJAeSkx8LPOoKs//?imgmax=800&quot; width=&quot;244&quot; height=&quot;44&quot;&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;3&quot;&gt; &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;3. Generate a .NET assembly and embed the native resource file you have just created in above step. Use the following command in visual studio 2010 command prompt. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;csc.exe /out:&amp;lt;target assembly path&amp;gt; /win32Res:&amp;lt;resource file path&amp;gt; /t:library &amp;lt;some .cs file path&amp;gt; &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;csc.exe /out:c:\ProviderFiles\EventProviderManifest.dll /win32Res:c:\ProviderFiles\EventProviderManifest.res /t:library c:\ProviderFiles\temp.cs &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;You will see the generated assembly in your target location. Something similar to the following. &lt;/font&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5-MmQsy0ZXMAi3DZrsQ4xDDokBtD1Fg4EbLCLV4bve6oLU0PZLE-FHYw_OGSzOHiLJ_YlVZOTRuNmyuH0BsToVAzqt6cDA6vpbBeus7n8nr1IgXn7fIfM0Bhz6cxVOWdPFJM_Ncky5zY/s1600-h/clip_image019%25255B3%25255D.jpg&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image019&quot; border=&quot;0&quot; alt=&quot;clip_image019&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTO18u_k41N_MI9w4wZtg-CYZDDjMSo3qp1xFGo243KlD2beBgMeD-EHK3S9OzGykix3WxFQTpL9839hM2zRfLbOZmdzremlRmLlJdvgdHPp9NrqJ20-jcq1sIQjAynaxQjP-6YeZqv1I//?imgmax=800&quot; width=&quot;244&quot; height=&quot;62&quot;&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;3&quot;&gt; &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;4. Next step is to update the instrumentation manifest file by updating the resourceFileName and messageFileName attributes of Provider element. Something similar to following. &lt;/font&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhevqJCWPi-uJcu9oManp_MUj7waSyDV-3CVmGziOvLZPLwLefDLE3FCn7j-r4kb_CHKig5MiCmN7MCINSR7cF54dh0qLTc7N4U30o9rdS9yh_SIIe1UbgHpnN7GaXkrbnGszz7G2kZIvI/s1600-h/clip_image021%25255B3%25255D.jpg&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image021&quot; border=&quot;0&quot; alt=&quot;clip_image021&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipXFIv-31qTsuF7vA750sMGJt90BJypkfjCbiSxjj2wZGcMwk2o6PotmFEOaYzzCUrYOik0YllDNNfclFosXKqgvIjklzl2nG99PAc27DcIjECabIupNYK0Ih5nXlL9JrW8JAnyTLIy1M//?imgmax=800&quot; width=&quot;244&quot; height=&quot;38&quot;&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;3&quot;&gt; &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;5. Last step is to register manifest xml file with operating system by running the following command. Use visual studio 2010 command prompt to run this command. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Wevtutil im &amp;lt;instrumentation manifest file path&amp;gt; &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Wevtutil im c:\ProviderFiles\EventProviderManifest.xml &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;3&quot;&gt;If the above command runs successfully, you have registered the manifest with operating system successfully.&lt;/font&gt;  &lt;p&gt;&lt;font size=&quot;3&quot;&gt;Till now we have seen how to work with instrumentation manifest and register it with the operating system. In part 3 of this series, I will show you how to create a provider assembly, which can be used in your applications to publish all the events you have defined in instrumentation manifest file.&lt;/font&gt;&lt;/p&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style=&quot;color: #222222&quot;&gt;&lt;?xml:namespace prefix = o ns = &quot;urn:schemas-microsoft-com:office:office&quot; /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0cm 0cm 10pt; background: white&quot; class=&quot;MsoNormal&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-family: &#39;Calibri&#39;,&#39;sans-serif&#39;; color: gray&quot;&gt;&lt;font size=&quot;3&quot;&gt;Links : &lt;a href=&quot;http://stdeepdive.blogspot.com/2012/03/working-with-windows-7-event-tracing.html&quot; target=&quot;_blank&quot;&gt;Part 1&lt;/a&gt;, &lt;a href=&quot;http://stdeepdive.blogspot.com/2012/03/working-with-windows-7-event-tracing_7688.html&quot; target=&quot;_blank&quot;&gt;Part 3&lt;/a&gt;, Part 4&lt;/font&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://stdeepdive.blogspot.com/feeds/4396434882265649408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://stdeepdive.blogspot.com/2012/03/working-with-windows-7-event-tracing_15.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6548459288910859437/posts/default/4396434882265649408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6548459288910859437/posts/default/4396434882265649408'/><link rel='alternate' type='text/html' href='http://stdeepdive.blogspot.com/2012/03/working-with-windows-7-event-tracing_15.html' title='Working with Windows 7 Event Tracing using .NET:- Part 2'/><author><name>Arun Malik</name><uri>http://www.blogger.com/profile/15956288023137519332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpW4oJA66MMRoY0LWVDNtgkMW7PL7Ot8z3tughOeU6NkS-KzTwGSLQCm0ZV6pmqUwobMr2-AZcSSJij87rwY5KQxv7Y6SjbaA7HSs23Uvx9WhrmPg1xBOV2DIAoLSolQUg7DkK2XxhRGk/s72-c/?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6548459288910859437.post-751516118123798313</id><published>2012-03-15T10:44:00.000-07:00</published><updated>2012-03-15T13:24:31.183-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Data Collector Sets"/><category scheme="http://www.blogger.com/atom/ns#" term="Debugging"/><category scheme="http://www.blogger.com/atom/ns#" term="ETW"/><category scheme="http://www.blogger.com/atom/ns#" term="Trace Sessions"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Event Trace"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Event Tracing"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Event Viewer"/><title type='text'>Working with Windows 7 Event Tracing using .NET:- Part 1</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;span class=&quot;MsoSubtleEmphasis&quot;&gt;&lt;em&gt;&lt;font color=&quot;#808080&quot; size=&quot;3&quot; face=&quot;Calibri&quot;&gt;&lt;a href=&quot;https://docs.google.com/open?id=0B7frxpvRKCAgUkoxdW0yMzVSakdKZkl5X1BncUZ1Zw&quot; target=&quot;_blank&quot;&gt;Download sample code&lt;/a&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;span class=&quot;MsoSubtleEmphasis&quot;&gt;&lt;em&gt;&lt;font color=&quot;#808080&quot; size=&quot;3&quot; face=&quot;Calibri&quot;&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;span class=&quot;MsoSubtleEmphasis&quot;&gt;&lt;em&gt;&lt;font color=&quot;#808080&quot; size=&quot;3&quot; face=&quot;Calibri&quot;&gt;Links : &lt;a href=&quot;http://stdeepdive.blogspot.com/2012/03/working-with-windows-7-event-tracing_15.html&quot; target=&quot;_blank&quot;&gt;Part 2&lt;/a&gt;, &lt;a href=&quot;http://stdeepdive.blogspot.com/2012/03/working-with-windows-7-event-tracing_7688.html&quot; target=&quot;_blank&quot;&gt;Part 3&lt;/a&gt;, Part 4&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;span class=&quot;MsoSubtleEmphasis&quot;&gt;&lt;em&gt;&lt;font color=&quot;#808080&quot; size=&quot;3&quot; face=&quot;Calibri&quot;&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;; mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri&quot;&gt;&lt;?xml:namespace prefix = o ns = &quot;urn:schemas-microsoft-com:office:office&quot; /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;; mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;; mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri&quot;&gt;&lt;o:p&gt; &lt;h2 style=&quot;margin: 10pt 0cm 0pt&quot;&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;&quot;&gt;&lt;font size=&quot;4&quot;&gt;&lt;font color=&quot;#4f81bd&quot;&gt;&lt;font face=&quot;Cambria&quot;&gt;Event Tracing Architectural components&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/h2&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;; mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font face=&quot;Calibri&quot;&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt; vertical-align: middle&quot; class=&quot;MsoNormal&quot;&gt;&lt;span class=&quot;Heading3Char&quot;&gt;&lt;strong&gt;&lt;font color=&quot;#4f81bd&quot; size=&quot;3&quot; face=&quot;Cambria&quot;&gt;Instrumentation Manifest:&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;; mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font face=&quot;Calibri&quot;&gt;&lt;font size=&quot;3&quot;&gt; This is an XML file used to define the metadata about events you want to publish from your application using Windows ETW APIs. Same metadata is used by operating system, consumer applications and trace sessions to understand the meaning of published event and its content. &lt;/font&gt;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt; vertical-align: middle&quot; class=&quot;MsoNormal&quot;&gt;&lt;span class=&quot;MsoSubtleEmphasis&quot;&gt;&lt;em&gt;&lt;font size=&quot;3&quot;&gt;&lt;font color=&quot;#808080&quot;&gt;&lt;a href=&quot;http://stdeepdive.blogspot.com/2012/03/working-with-windows-7-event-tracing_15.html&quot; target=&quot;_blank&quot;&gt;See how to create an instrumentation manifest file from scratch.&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt 27pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;; mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font face=&quot;Calibri&quot;&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt; vertical-align: middle&quot; class=&quot;MsoNormal&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;span class=&quot;Heading3Char&quot;&gt;&lt;strong&gt;&lt;font color=&quot;#4f81bd&quot; face=&quot;Cambria&quot;&gt;Event Provider:&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;; mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font face=&quot;Calibri&quot;&gt; Event provider can be any application or component which is using ETW APIs and publishing windows tracing events. Generally you put all your code specific to ETW APIs in a separate assembly and use it in all your applications to publish the events. Each provider is associated with an instrumentation manifest file, which defines all the possible events your provider code can publish.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;font size=&quot;3&quot;&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;; mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font face=&quot;Calibri&quot;&gt;&lt;o:p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt; vertical-align: middle&quot; class=&quot;MsoNormal&quot;&gt;&lt;span class=&quot;MsoSubtleEmphasis&quot;&gt;&lt;em&gt;&lt;font size=&quot;3&quot;&gt;&lt;font color=&quot;#808080&quot;&gt;See how to create a provider assembly and use it in your application to publish events you had defined in instrumentation manifest file.&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt 54pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;; mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font face=&quot;Calibri&quot;&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt; vertical-align: middle&quot; class=&quot;MsoNormal&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;span class=&quot;Heading3Char&quot;&gt;&lt;strong&gt;&lt;font color=&quot;#4f81bd&quot; face=&quot;Cambria&quot;&gt;Trace Sessions:&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;; mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font face=&quot;Calibri&quot;&gt; Trace Sessions listens for all the events published by your event provider. Event provider does not know what all Trace sessions are listening for the events it is publishing. Multiple trace sessions can be created to listen for the events created by single provider.&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;Trace sessions are created and configured using controller applications. &lt;span class=&quot;MsoSubtleEmphasis&quot;&gt;&lt;em&gt;&lt;font size=&quot;3&quot;&gt;&lt;font color=&quot;#808080&quot;&gt;See how to create and configure a Trace session.&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt; vertical-align: middle&quot; class=&quot;MsoNormal&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;; mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font face=&quot;Calibri&quot;&gt;&lt;span class=&quot;MsoSubtleEmphasis&quot;&gt;&lt;em&gt;&lt;font size=&quot;3&quot;&gt;&lt;font color=&quot;#808080&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;; mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font face=&quot;Calibri&quot;&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt; vertical-align: middle&quot; class=&quot;MsoNormal&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;span class=&quot;Heading3Char&quot;&gt;&lt;strong&gt;&lt;font color=&quot;#4f81bd&quot; face=&quot;Cambria&quot;&gt;Event Consumers: &lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;; mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font face=&quot;Calibri&quot;&gt;These are the applications which use Trace sessions as the source of the events. Same consumer application can listen for multiple trace sessions at same time. It can listen for the events in real time from the trace sessions which are configured to put the events in memory buffer or from log file generated by trace sessions configured to put events in log file. &lt;span class=&quot;MsoSubtleEmphasis&quot;&gt;&lt;em&gt;&lt;font size=&quot;3&quot;&gt;&lt;font color=&quot;#808080&quot;&gt;See how to use Windows Event Viewer, standard event consumer application provided by operating system.&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt 27pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;; mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font face=&quot;Calibri&quot;&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt; vertical-align: middle&quot; class=&quot;MsoNormal&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;span class=&quot;Heading3Char&quot;&gt;&lt;strong&gt;&lt;font color=&quot;#4f81bd&quot; face=&quot;Cambria&quot;&gt;Session Controllers:&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;; mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font face=&quot;Calibri&quot;&gt; These are the applications you use to create new trace sessions and configure them to listen for the events published by your event providers. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt; vertical-align: middle&quot; class=&quot;MsoNormal&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;; mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font face=&quot;Calibri&quot;&gt;&lt;span class=&quot;MsoSubtleEmphasis&quot;&gt;&lt;em&gt;&lt;font size=&quot;3&quot;&gt;&lt;font color=&quot;#808080&quot;&gt;See how to work with GUI based session controller application.&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;Below figure shows how all these components are logically associated with each other.&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTgOga9bMXILgg364sb-xzyNCHVKgbUsIPyV2sRqW_RPtqvCPc0HlmlfYBKdw2bwrzcYZDGPIuejaNEeyXufbUcD5_hobBeXJFXK5HGi4u3yhyphenhyphenaUAipEkcNfk2eenBihb5AgaOCmV9oBk/s1600-h/image%25255B2%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRtDwU4ux9013mMW_2jtSGLwhD35dYsPzFHxVxJQPXLYmcUo-i4eaXxrgwY9exJCV5_larah-nMl1va53kLTQb7bI9ugmOLmg2c6ZQgZ-y2lRDEgPIRZGHwUnFG4FcKgSv1KpLFg2fKGU//?imgmax=800&quot; width=&quot;244&quot; height=&quot;215&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;span class=&quot;MsoSubtleEmphasis&quot;&gt;&lt;/span&gt;&lt;span class=&quot;MsoSubtleEmphasis&quot;&gt;&lt;em&gt;&lt;font color=&quot;#808080&quot; size=&quot;3&quot; face=&quot;Calibri&quot;&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;span class=&quot;MsoSubtleEmphasis&quot;&gt;&lt;font color=&quot;#808080&quot; face=&quot;Calibri&quot;&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;; mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;Now we know the high level component of windows event tracing infrastructure. A developer has to work with all these components to successfully enable their application to use windows event tracing. &lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;; mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri&quot;&gt;&lt;o:p&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;; mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;In the next articles of this series, I will show you how to define your custom events &lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/span&gt;using instrumentation manifest file, create your own event provider assembly which can be used in any of your application to publish custom events. I will also show you how to configure new Trace Sessions which will listen to your custom events and how to view all the collected events using Windows Event Viewer.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;mso-fareast-font-family: &#39;Times New Roman&#39;; mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot;&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;span class=&quot;MsoSubtleEmphasis&quot;&gt;&lt;em&gt;&lt;font color=&quot;#808080&quot; size=&quot;3&quot; face=&quot;Calibri&quot;&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;line-height: normal; margin: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;span class=&quot;MsoSubtleEmphasis&quot;&gt;&lt;em&gt;&lt;font color=&quot;#808080&quot; size=&quot;3&quot; face=&quot;Calibri&quot;&gt;Links : &lt;a href=&quot;http://stdeepdive.blogspot.com/2012/03/working-with-windows-7-event-tracing_15.html&quot; target=&quot;_blank&quot;&gt;Part 2&lt;/a&gt;, &lt;a href=&quot;http://stdeepdive.blogspot.com/2012/03/working-with-windows-7-event-tracing_7688.html&quot; target=&quot;_blank&quot;&gt;Part 3&lt;/a&gt;, Part 4&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://stdeepdive.blogspot.com/feeds/751516118123798313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://stdeepdive.blogspot.com/2012/03/working-with-windows-7-event-tracing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6548459288910859437/posts/default/751516118123798313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6548459288910859437/posts/default/751516118123798313'/><link rel='alternate' type='text/html' href='http://stdeepdive.blogspot.com/2012/03/working-with-windows-7-event-tracing.html' title='Working with Windows 7 Event Tracing using .NET:- Part 1'/><author><name>Arun Malik</name><uri>http://www.blogger.com/profile/15956288023137519332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRtDwU4ux9013mMW_2jtSGLwhD35dYsPzFHxVxJQPXLYmcUo-i4eaXxrgwY9exJCV5_larah-nMl1va53kLTQb7bI9ugmOLmg2c6ZQgZ-y2lRDEgPIRZGHwUnFG4FcKgSv1KpLFg2fKGU/s72-c/?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6548459288910859437.post-806245452164105827</id><published>2012-02-23T10:54:00.000-08:00</published><updated>2012-02-23T10:56:13.724-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Distributed components"/><category scheme="http://www.blogger.com/atom/ns#" term="Service Oriented Architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="WCF"/><category scheme="http://www.blogger.com/atom/ns#" term="WCF Runtime Extension"/><title type='text'>WCF Extension Points, How to extend WCF framework to add custom features in WCF runtime.</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;In one of my SOA based software system, I had a requirement of intercepting the service method calls to automatically logging the method calls on entry and exit of the service method call without putting any logging statements inside the service method implementation and to have some default exception handling logic again without putting any try catch blocks inside service method implementation. The implementation of these features was giving us more cleaner implementation of business functionality inside service methods by abstracting away the implementation of crosscutting concerns like exception handling or logging in my case.&amp;nbsp; &lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;To implement the above feature I was looking for the way to get execution control even before it goes to my service methods. Good news is that WCF itself helped me and gave the control with the help of it&#39;s extension points. Lets see how?&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;Proxy and Dispatcher&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;WCF works on messages which are send between client and service. Every time client wants to call a service&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;method, it sends a message to service with help of Proxy running in the client process. Job of the Proxy is to take the client request and convert it into a message which is than further serialized and transferred to the service. At service end this message is received by Dispatcher. Dispatcher takes the message and desterilizes the content into appropriate CLR type, finds out which method has to be called on behalf of the client and calls that method.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;Both Proxy and Dispatcher provides many extension points using different interfaces. When you implement these interfaces in your own class and register those class with WCF runtime (we will see how?), Both Proxy and Dispatcher calls the implementation in your class at the time of message processing.&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;Lets see what all interfaces are provided via WCF framework to intercept the message processing.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.375in; font-size: 11pt; font-weight: normal&quot; type=&quot;1&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; color: #333333; vertical-align: middle&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; background: white; color: #333333; font-size: 11pt; font-weight: normal&quot;&gt;IParameterInspector : &lt;/span&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; color: black; font-size: 11pt; font-weight: normal&quot;&gt;Called before and after invocation to inspect and modify parameter values.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.375in; font-size: 11pt; font-weight: normal&quot; type=&quot;1&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; color: #333333; vertical-align: middle&quot; value=&quot;2&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; background: white; font-size: 11pt; font-weight: normal&quot;&gt;IDispatchMessageFormatter/IClientFormatter : Called to perform serialization and deserialization.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; color: #333333; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.375in; font-size: 11pt; font-weight: normal&quot; type=&quot;1&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; color: #333333; vertical-align: middle&quot; value=&quot;3&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; background: white; font-size: 11pt; font-weight: normal&quot;&gt;IDispatchMessageInspector/IClientMessageInspector : Called before send or after receive to inspect and replace message contents.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; color: #333333; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.375in; font-size: 11pt; font-weight: normal&quot; type=&quot;1&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; color: #333333; vertical-align: middle&quot; value=&quot;4&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; background: white; font-size: 11pt; font-weight: normal&quot;&gt;IDispatchOperationSelector/IClientOperationSelector : Called to select the operation to invoke for the given message.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; color: #333333; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.375in; font-size: 11pt; font-weight: normal&quot; type=&quot;1&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; color: #333333; vertical-align: middle&quot; value=&quot;5&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; background: white; font-size: 11pt; font-weight: normal&quot;&gt;IOperationInvoker : Called to invoke the operation.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; color: #333333; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; color: #333333; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;Registering your inspector class with WCF runtime&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;You use WCF behaviors to register your inspector classes with WCF runtime. When the ServiceHost initializes the service, it looks into app.config/web.config file&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;for the behaviour to apply and also reflects over all the attributes applied on service contract methods to check if any attribute has been applied which is implementing any behaviour interface. If it finds one, it creates an instance of that attribute type and calls appropriate methods of behaviour interface, implemented by attribute class, to you give you a change to register your interceptors during service initialization.&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;There are following types of behaviors provided via WCF&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.375in; font-size: 11pt; font-weight: normal&quot; type=&quot;1&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: normal&quot;&gt;IServiceBehavior: Allows you to register your inspectors at Service level.&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt&quot;&gt;IEndpointBehavior: Allows you to register your inspectors at Endpoint level.&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt&quot;&gt;IContractBehavior: Allows you to register your inspectors at Service Contract level.&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt&quot;&gt;IOperarionBehavior: Allows you to register your inspectors at each Operation level.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;All these behavior interfaces are having same methods but the method signatures are different so that your only get those runtime objects which comes under the scope you want to extend. Following are the methods available in each behavior interface.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.375in; font-size: 11pt; font-weight: normal&quot; type=&quot;1&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: normal&quot;&gt;Validate: Called just before the runtime is built—allows you to perform custom validation on the service description.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.375in; font-size: 11pt; font-weight: normal&quot; type=&quot;1&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot; value=&quot;2&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: normal&quot;&gt;AddBindingParameters: Called in the first step of building the runtime, before the underlying channel is constructed—allows you to add parameters to influence the underlying channel stack.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.375in; font-size: 11pt; font-weight: normal&quot; type=&quot;1&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot; value=&quot;3&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: normal&quot;&gt;ApplyClientBehavior: Allows behavior to inject proxy (client) inspectors. this method is not present on IServiceBehavior.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.375in; font-size: 11pt; font-weight: normal&quot; type=&quot;1&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot; value=&quot;4&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: normal&quot;&gt;ApplyDispatchBehavior:Allows behavior to inject dispatcher inspectors.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; color: #595959; font-size: 9pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;Now you know what all classes and interfaces are available from WCF to extend its runtime, lets extend the runtime to intercept the service method calls and log the entry and exit of method call automatically (without writing logging code in service method implementation).&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;Following are the classes involved in my solution. To make the sample as simple as possible I have create all these classes and interfaces in single WCF project.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWi8t5775Yh9QqieAO28OsvhgOuvG3rXwNAs8WDj4Zi1fmL7HBV4sxFWQe5s0CBDcq-q0Wv9zdSG3E5xUpIT_5A2EMpt39vVuCVFpmpbhnRfS15RdoWnF8KqEpCJTRR_KgZ4omSgy2-J8/s1600-h/image%25255B2%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpXl3VFbeUHkGFsnXeqtL8wVikFTjdeI-W46F6nwJe7nMYVDD083O33l8S-kdeWcSxB9XVFyLtBw_6tsasrIjR5nGOi8fn-cM1bmq_4l4Y35PTDyJWxKP6LvkneAz62zc85YkeWSg82C0//?imgmax=800&quot; width=&quot;244&quot; height=&quot;203&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;Code for LoggingAttribute.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;Note how this class is inherited from Attribute class and implementing IOperationBehavior. Methods of IOperationBehavior will be called by ServiceHost at the time of service initialization process to give you a chance to register your inspectors. In this example I am registring LoggingInspector instance.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System.Collections.Generic;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System.Linq;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System.Web;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System.ServiceModel.Description;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;namespace SampleService&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;{&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; font-size: 11pt&quot;&gt;public class LoggingAttribute : Attribute, IOperationBehavior&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; font-size: 11pt&quot;&gt;{&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public void AddBindingParameters(OperationDescription operationDescription, System.ServiceModel.Channels.BindingParameterCollection bindingParameters)&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//for this example no implementation is required in this method.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public void ApplyClientBehavior(OperationDescription operationDescription, System.ServiceModel.Dispatcher.ClientOperation clientOperation)&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//for this example no implementation is required in this method.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public void ApplyDispatchBehavior(OperationDescription operationDescription, System.ServiceModel.Dispatcher.DispatchOperation dispatchOperation)&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//Register your inspector class&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;dispatchOperation.ParameterInspectors.Add(new LoggingInspector());&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public void Validate(OperationDescription operationDescription)&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//for this example no implementation is required in this method.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;}&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;Code for LoggingInspector.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;See how LoggingInspector is implementing IParameterInspector interface and providing the logging functionality.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System.Collections.Generic;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System.Linq;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System.Web;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System.ServiceModel.Dispatcher;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;namespace SampleService&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;{&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public class LoggingInspector : IParameterInspector&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public void AfterCall(string operationName, object[] outputs, object returnValue, object correlationState)&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//Your can put any logging code here. here is the dummy one.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Console.WriteLine(string.Format(&quot;Method exit : {0}&quot;,operationName));&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public object BeforeCall(string operationName, object[] inputs)&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//Your can put any logging code here. here is the dummy one.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Console.WriteLine(string.Format(&quot;Method entry : {0}&quot;, operationName));&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;return null;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;}&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;Code for ISampleService service contract interface.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;Here I am applying my own custom attribute to enable automatic logging on IncrementNumber method.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System.Collections.Generic;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System.Linq;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System.Runtime.Serialization;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System.ServiceModel;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System.ServiceModel.Web;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System.Text;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;namespace SampleService&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;{&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[ServiceContract]&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public interface ISampleService&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[OperationContract]&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[Logging]&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;int IncrementNumber(int number);&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;}&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;Code for SampleService implementation.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;Note that there is no logging related implementation inside IncrementNumber method implementation.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System.Collections.Generic;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System.Linq;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System.Runtime.Serialization;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System.ServiceModel;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System.ServiceModel.Web;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;using System.Text;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;namespace SampleService&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;{&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public class SampleService : ISampleService&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public int IncrementNumber(int number)&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;return number++;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;}&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://stdeepdive.blogspot.com/feeds/806245452164105827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://stdeepdive.blogspot.com/2012/02/wcf-extension-points-how-to-extend-wcf.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6548459288910859437/posts/default/806245452164105827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6548459288910859437/posts/default/806245452164105827'/><link rel='alternate' type='text/html' href='http://stdeepdive.blogspot.com/2012/02/wcf-extension-points-how-to-extend-wcf.html' title='WCF Extension Points, How to extend WCF framework to add custom features in WCF runtime.'/><author><name>Arun Malik</name><uri>http://www.blogger.com/profile/15956288023137519332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpXl3VFbeUHkGFsnXeqtL8wVikFTjdeI-W46F6nwJe7nMYVDD083O33l8S-kdeWcSxB9XVFyLtBw_6tsasrIjR5nGOi8fn-cM1bmq_4l4Y35PTDyJWxKP6LvkneAz62zc85YkeWSg82C0/s72-c/?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6548459288910859437.post-7619507869401666388</id><published>2012-02-23T08:23:00.000-08:00</published><updated>2012-02-23T08:25:32.313-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Distributed components"/><category scheme="http://www.blogger.com/atom/ns#" term="Service Oriented Architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="WCF"/><title type='text'>Why WCF when there are other technologies to implement distributed software systems?</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://stdeepdive.blogspot.com/2012/02/service-oriented-architecture.html&quot; target=&quot;_blank&quot;&gt;Need for distributed software systems&lt;/a&gt;. &lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;font-style: italic&quot;&gt;How do you create distributed application?&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;At architectural level you design your software systems by breaking the business functionality into multiple components and than deploy these components on separate process and machine boundaries.&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;All these components running on separate process and machine boundaries has to have some communication between them using some protocol so that they can collaborate to achieve the overall business functionality. &lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;There have been many technologies available to develop the components and deploy them in distributed manner. Following are some the examples&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.375in; font-size: 11pt; font-weight: normal&quot; type=&quot;1&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: normal&quot;&gt;.Net Remoting&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.375in; font-size: 11pt; font-weight: normal&quot; type=&quot;1&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot; value=&quot;2&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: normal&quot;&gt;COM and DCOM&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt&quot;&gt;CORBA&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;and RMI&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt&quot;&gt;Microsoft Enterprise Services&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;font-style: italic; font-weight: bold&quot;&gt;So what&#39;s wrong in using the above technologies to create distributed apps?&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;There is nothing wrong creating a distributed application using these technologies until your application is going to be used outside the organization or department and not going to interact with other applications in future. When the need to interact with other application comes in, it becomes really hard to achieve the desired interaction among applications because of the mismatch in data structures and protocol stack between your and other applications. Interoperability becomes&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;an issue because of proprietary standards and protocol stacks used to develop the applications. Other than interoperability issues, all these technologies has a limitation where firewalls can block the communication between components.&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;font-style: italic; font-weight: bold&quot;&gt;How do you tackle with interoperability among distributed components?&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;We use web service technology in which components are exposed to other components using xml based open web standards (SOAP , WSDL, HTTP). These standards are acceptable throughout the software industry. As these standards are based on XML and HTTP which are supported on all platforms, components exposed using these standards are easily accessible between different platforms, ex a components running on windows platform can be accessed via components running on Unix platform. Following are some of the web service elements which makes interoperability possible.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;Standard protocol:&lt;/span&gt; Functionality is exposed via interfaces using one of the few standard Internet protocols such as HTTP, SMTP, FTP, and so on. Mostly used protocol is HTTP.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;Service description:&lt;/span&gt; Web services need to describe their interfaces in detail so that a client knows how to “consume” the functionality provided by the service. This description is usually provided via an XML document called a WSDL document. (WSDL stands for Web Services Description Language.)&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;Finding services:&lt;/span&gt; Users need to know what web services exist and where to find them so the clients can bind to them and use the functionality. One way for users to know what services exist is to connect to the listing of services. These listings are implemented via Universal Discovery, Description, and Integration (UDDI) repositories.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;font-style: italic&quot;&gt;From above text it should be clear that there are many technologies available to implement distributed components with there own specific advantages and disadvantages and you should web services to expose your components outside your organization or department boundaries because of its open standards support all around in software community.&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;Now imagine that your organization or department needs to develop an application which has to be used internal to your organization and will also be accessed from outside your organization or department.&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;You might go and use .NET Remoting to expose your serviced components for internal users and will have to used web services to expose same components&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;to the users outside your organization. But if you do this your code base for the components will have the knowledge for both the technologies being used to expose the functionality as a service. Your developers will be investing more time in dealing with the technology implementation rather than the business functionality implementation. &lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;What if you can abstract away the fact from your code base that your component is going to be exposed using multiple protocols and technologies? What if you can enable or disable any protocol in your already running component without stopping it or doing any code changes?&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;All these features were kind of dream before WCF came in market.&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;font-style: italic; font-weight: bold&quot;&gt;WCF introduction&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;font-style: italic; font-weight: bold&quot;&gt;(Develop once and use anywhere)&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;WCF is new Microsoft technology, actually a framework build upon .NET framework, which makes it really easy to develop serviced components and deploy them using multiple communication protocols. It supports net.tcp, net.pipe, HTML, HTTPS and MSMQ communication protocols. Biggest advantage of using WCF is that the knowledge of what all protocols are being used to expose your component is completely abstracted from the component code.&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;WCF framework is highly extendible as well. It provides so many extension points using them your can implement your own protocols and control almost all the expects of exposing your component as service.&lt;span style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;Following are main goals of WCF&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.375in; font-size: 11pt; font-weight: bold&quot; type=&quot;1&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle; font-weight: bold&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: bold&quot;&gt;Unification of existing technologies: &lt;/span&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: normal&quot;&gt;WCF subsumes the best of all the distributed technologies. WCF brings together the efficiency of ASMX, the gift of merely adopting transactions with Enterprise Services just through using attributes, the extensibility and flexibility of .NET Remoting, the supremacy of MSMQ for building queued applications, and WSE’s interoperability through WS-*. Microsoft took all these capabilities and built a single, steady infrastructure in the form of WCF.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhj88y4WR5X52VmBFss43ZOLcRXYMMScYOCeVmuOhmaHoLiS6DLfx4qtaAzG7L5eQlphy6v6G436p_mjn0eTpXPJ5c8iCrGH7T_7mLlnaXj_502lgMvt38biXzQHC89-F1FOXabYeVYQVk/s1600-h/image%25255B2%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2769G04PQLsJzbUEiolfmZCb-_3R8XHc6KVd-oLA7e-YlhjQovhNDhCLld3iSIeMV_Okdy_AyzKuH38yC6ZUa1ETS-4BK5Yu0hIJyNzm56K5eXEdnV5Q9esrT2K9YcIBHqg2QGM24eYA//?imgmax=800&quot; width=&quot;244&quot; height=&quot;136&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.375in; font-size: 11pt; font-weight: normal&quot; type=&quot;1&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot; value=&quot;2&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: bold&quot;&gt;WCF As a Service-Oriented Development Tool:&lt;/span&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: normal&quot;&gt; WCF offers that foundation for service-oriented applications by supporting all the four tents of SOA mentioned in my &lt;a href=&quot;http://stdeepdive.blogspot.com/2012/02/service-oriented-architecture.html&quot; target=&quot;_blank&quot;&gt;post&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCJV1GIYxnpjRB1pyj8uI8ejeAJa6mnlmvklavcS9RD8UciO-4bmGB2fUsXRAXNb0_vNkrtVdnVfgIseEyaf8uVPPYVoTUpZoMhqCqYjg_bjNiB-I8qi6ag4DnCy-iY8XqmirCQnzNFHM/s1600-h/image%25255B5%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguMkEz081JYt0NTKIKXzjxBBkzvbZ7aJz5C45V2libowws2MXIJdk5yqC25AMDaDx9XSTjLIezMD25PYnryHFh4soOYUrcZR9nFjd4RKnSdtx5ZB-OYYrp7cupQJHjLkomSSkYgu86POs//?imgmax=800&quot; width=&quot;244&quot; height=&quot;171&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; font-size: 11pt&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;ol style=&quot;font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: calibri; direction: ltr; margin-bottom: 0in; margin-left: 0.375in; font-size: 11pt; font-weight: normal&quot; type=&quot;1&quot;&gt; &lt;li style=&quot;margin-top: 0px; margin-bottom: 0px; vertical-align: middle&quot; value=&quot;3&quot;&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: bold&quot;&gt;Coexisting with Existing Technology:&lt;/span&gt;&lt;span style=&quot;font-style: normal; font-family: calibri; font-size: 11pt; font-weight: normal&quot;&gt; WCF takes all the capabilities of the existing technology stacks while not relying upon any of them. All your existing investments will run side by side with WCF. Applications built with these earlier technologies will continue to work unchanged on systems with WCF installed. It also provides you with an opportunity to communicate with, or even replace, existing Windows communications APIs and technologies, including ASMX, ASP.NET web services, Web Services Enhancements (WSE), Enterprise&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-family: calibri; font-size: 11pt&quot;&gt;Services, System.Messaging, and .NET Remoting.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://stdeepdive.blogspot.com/feeds/7619507869401666388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://stdeepdive.blogspot.com/2012/02/why-wcf-when-there-are-other.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6548459288910859437/posts/default/7619507869401666388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6548459288910859437/posts/default/7619507869401666388'/><link rel='alternate' type='text/html' href='http://stdeepdive.blogspot.com/2012/02/why-wcf-when-there-are-other.html' title='Why WCF when there are other technologies to implement distributed software systems?'/><author><name>Arun Malik</name><uri>http://www.blogger.com/profile/15956288023137519332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2769G04PQLsJzbUEiolfmZCb-_3R8XHc6KVd-oLA7e-YlhjQovhNDhCLld3iSIeMV_Okdy_AyzKuH38yC6ZUa1ETS-4BK5Yu0hIJyNzm56K5eXEdnV5Q9esrT2K9YcIBHqg2QGM24eYA/s72-c/?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6548459288910859437.post-5023574800489187843</id><published>2012-02-03T10:38:00.000-08:00</published><updated>2012-02-03T18:52:14.460-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Service Oriented Architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Architecture"/><title type='text'>Service Oriented Architecture</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Problem :&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
In todays business environment, where customer requirements and demands are changing frequently and businesses are operating in heterogeneous markets, business process automation requirements are becoming more complex and new changes to business processes are coming so frequently. Business are asking for software systems which are highly integrated, easy to modify , highly scalable and customizable so that the changes to business processes and requirements can be accommodated easily with less cost and efforts. &lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
To achieve all these business need, software systems has to be highly modular, business functionality from different business units should be divided into distributed components and these components should be accessible in location transparent way and should be highly interoperable.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;System components should be deployed across process and machine to deal with performance bottleneck, to introduce security boundary and to facilitate enterprise level reuse.&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;strong&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Question is how do we do it?&lt;/span&gt; &lt;/strong&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
Here, Service Oriented Architecture Comes as rescue. SOA is an architectural style or I would say a reference architecture which guides architects on, how they should decompose business functionality into components and how does the functionality of these components is available to other components. SOA brings the concepts of public contracts, policies and interoperability. Because of these concepts, system components can communicate with each other without worrying about the technology, other component has been implemented.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;SOA also posses some constraints on component design and the design of communication links between components. &lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;strong&gt;What is Service?&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
The term service has different meaning at different level of abstractions. At system architecture level, service is a business functionality which is distributable and is accessible to consume in some way.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;It is a window through which business functionality cab be reached.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
Consider the application architecture in Following figure. The client application represents an Agency Management&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
System that includes many chunks of business functionality such as Certificate Issuance, General Ledger, CRM, and Reporting. The client application coordinates access to these features by consuming business components directly. In&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
this case, components are not distributable in such a way that they can be location transparent, thus they are not services.&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&amp;nbsp;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOnrpolnr7JuR5hVsp1hzBp9sVpwH8lZlDgXQEl6mkTKRdpPeL-661lGmFUF5BadgQ8WMPbhH8cHr8LDjJXyDBOat8dpudh44q6vixMyWN_6kIN8M2ZnkaFhvDTsAv8WKWjK4209ZQ7Dw/s1600-h/image%25255B2%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;110&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNl7tE6EhO75XPfjYfgx8AD9ET9muDa8jFtxhLFk30QyNIUVQIvP7gIz7eVVJFWsw-WUaF6C3c8FoIh1WDjVkgpv51P2oIzrddJN6Z_CN6tHy496aNhtK8iCM-twiDPtDN2aavg8m4TZk//?imgmax=800&quot; style=&quot;background-image: none; border: 0px currentColor; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;strong&gt;So how do you implement a service in SOA?&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
You expose your system components as serviced components using different distributed technologies. Some of the technologies you can use are : Enterprise Services, a .NET Remoting component, an ASMX web service , or a WCF service. Any of these technologies can be useful in exposing the business logic in such a way that the client can reach that functionality at remote locations in a distributed environment, without communicating directly with the business&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
components.&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
Following is an updated diagram of Agency Management System. Here each business functionality is exposed using one of the distributed technologies. Serviced components are reached using DCOM over TCP,.NET Remoting components via RPC over TCP,ASMX web services via SOAP over HTTP, and WCF services via SOAP over any protocol.&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0in;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcuNIicR-gj5y2-PE8Ahc_tznE0SwaViD9nyWncv7pL9G1er99uPKRLSVPgc3JAXHxW0zBi95JmPkdFy_ij6taf4BHd6i-hv2AM1WJIgWGwvycbxZV3Ab6589zJH6fQIHUbhmZyskAXGg/s1600-h/image%25255B5%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;134&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4bZ4c5NDYsD-g2NhEefPsaPSb9jmZC1NcUokV9WIiFYbQCKOqXJPMcNIvug-3JGFa0KyJz8MQC59wyM5CZe7RZu_FuOXExqpK6PivpewxhBC-zRX7GfFSfAynX5eIpfvMnrg8f_pBHug//?imgmax=800&quot; style=&quot;background-image: none; border: 0px currentColor; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
The point is that services are not necessarily web services—they are merely chunks of business functionality exposed in some way such that they respect the tenets of SOA.&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-style: italic;&quot;&gt;Some of the constraints SOA poses on serviced components&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: bold;&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: bold;&quot;&gt;Service boundaries are explicit :&lt;/span&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt; Services are responsible for exposing a specific set of business functionality through a well-defined contract, where the contract describes a set of concrete operations and messages supported by the service. Services completely encapsulate the coordination of calls to business components in response to operations it exposes to clients. Implementation details behind the service are unknown to clients &lt;/span&gt;so that any technology platform could be invoked behind the service without impact to the client. In addition, the location of the service isn’t important to the client as long as the client knows where to reach it. All the distributed technologies provide a way to expose your system components by following this constraint.&lt;/li&gt;
&lt;/span&gt;&lt;/ol&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;
&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;2&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: bold;&quot;&gt;Services are autonomous :&lt;/span&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt; Services encapsulate business functionality, but they must also encapsulate other &lt;/span&gt;dependencies of the business tier. In this way the entire service should be moveable or even replaceable without impact to other services or system functionality. A service represents a major chunk of business functionality that owns its own business components, data access components and data storage if applicable. It should be able to perform key functions without external dependencies. This is what is meant by atomicity. &lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;3&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: bold;&quot;&gt;Clients and services share contracts, not code :&lt;/span&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt; As service boundaries are explicit, Contracts are used to define this boundary to client application. The contract must not change once published, or must at a minimum remain &lt;/span&gt;backward compatible to existing clients.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;4&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: bold;&quot;&gt;Compatibility is based upon policy:&lt;/span&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt; While contracts describe the business functionality available at a service boundary, policy describes other constraints, such as communication protocols, security requirements, and reliability requirements.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;
&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;/span&gt;If the above information is useful, Please provide your valuable feedback.&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;
&lt;br /&gt;Thanks.&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stdeepdive.blogspot.com/feeds/5023574800489187843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://stdeepdive.blogspot.com/2012/02/service-oriented-architecture.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6548459288910859437/posts/default/5023574800489187843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6548459288910859437/posts/default/5023574800489187843'/><link rel='alternate' type='text/html' href='http://stdeepdive.blogspot.com/2012/02/service-oriented-architecture.html' title='Service Oriented Architecture'/><author><name>Arun Malik</name><uri>http://www.blogger.com/profile/15956288023137519332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNl7tE6EhO75XPfjYfgx8AD9ET9muDa8jFtxhLFk30QyNIUVQIvP7gIz7eVVJFWsw-WUaF6C3c8FoIh1WDjVkgpv51P2oIzrddJN6Z_CN6tHy496aNhtK8iCM-twiDPtDN2aavg8m4TZk/s72-c/?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6548459288910859437.post-4603857960393986617</id><published>2012-02-01T11:25:00.000-08:00</published><updated>2012-02-02T20:48:44.560-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="IIS"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio"/><category scheme="http://www.blogger.com/atom/ns#" term="WCF"/><category scheme="http://www.blogger.com/atom/ns#" term="WCF/Workflow Hosing"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Workflow"/><title type='text'>Hosting WCF/Workflow Service in IIS directly from Visual Studio 2010 and start debugging by just hitting F5 on Visual Studio.</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Problem :&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;When you develop a WCF/Workflow service using Visual Studio and try to run it, by default Visual Studio runs it under web development server. Here the problem is that the web development server is a light weight host and does not support reach features which comes with IIS. For example web development server does not allow you to run a WCF/Workflow service, which is configured to use NET TCP binding. There are many more such features which does not come with web development server. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;As a developer we all want to, just hit the F5 button and start debugging. But if your WCF/Workflow service is configured in such a way that it can only run under IIS, it becomes really tricky to start debugging it.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;The common approach we generally follow is to find out in which w3wp.exe our service is running and than attach the Visual Studio to that process. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;In following text, I have shown another approach in which Visual Studio can be configured to run together with IIS. With this configuration your WCF/Workflow Services runs under IIS as soon you hit the F5 and you can start debugging without any hassles.&lt;/span&gt; &lt;br /&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Create WCF/Workflow service. See &lt;a href=&quot;http://stdeepdive.blogspot.com/2012/02/create-workflow-wcf-service-using.html&quot; target=&quot;_blank&quot;&gt;how to create basic Workflow WCF Service&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;2&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Configure IIS to host your WCF/Workflow service.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;&quot;&gt;
&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;(Note :- You can skip following steps if you already a some IIS website configured on port 80 and NET &lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;&quot;&gt;
&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;TCP binding is configured. )&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in 0in 0in 0.375in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.75in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;a&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Open IIS Manager.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Add new application pool.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;i&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Select &#39;Application Pools&#39; node from the left hand side tree view.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;i&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;2&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Click on &#39;Add Application Pool&#39; link from &#39;Actions&#39; panel at right hand side.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Give Some name to your application pool. I have given name as &#39;WorkflowService&#39;. In below steps I will refer your application pool as &#39;WorkflowService&#39;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Change .Net Framework Version to 4.0&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Click &#39;Ok&#39;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in 0in 0in 1.125in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0in 0in 0in 1.125in;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_ybjE8CFhRb8Vd4U1nPOP87W6Z9VDDNk55tVcV4N9TMisXBMa1ms4tQ79yWijPO9RzcR8TruV1JMQfTY_G523Eu_u8xD7YyffznuDsFMuEfKSbLVUMwzM3Y2HYjIS0tDIu3PAZsDehg4/s1600-h/image%25255B2%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;220&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdeMLkE7q3kJj6z_m5KqLDROlBFSWz0TINa5tIVfJOlPJOogyCcIslvLa0rroFCA_aan4N4Z_WUdBsrBHA0CspESla7a19tiTvzNf986oNS9mUFQWiUyI8-BaJdxtZ9aRdI9jDziBhFvY//?imgmax=800&quot; style=&quot;background-image: none; border: 0px currentColor; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in 0in 0in 1.125in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.75in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;a&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;3&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Add new &#39;Web Site Application&#39; for your services.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;i&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Select &#39;Sites&#39; node from the left hand side tree view.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Right click on &#39;Sites&#39; node and click &#39;Add Web Site&#39;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Give Some name to your Web Site. I have given name as &#39;WorkflowService&#39;. I have given name as &#39;WorkflowService&#39;. In below steps I will refer your website as &#39;WorkflowService&#39;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Change Application Pool name to &#39;WorkflowService&#39;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Provide some directory path to create IIS virtual directory for this new web site.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;i&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;6&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Provide host name as &#39;localhost&#39; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;i&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;7&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Click &#39;Ok&#39;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in 0in 0in 1.125in;&quot;&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;(Note : While clicking on Ok button you might get a message saying that some other website is already configured to run on port number 80. You just need to close the already running website and start your newly created website.)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in 0in 0in 1.125in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0in 0in 0in 1.125in;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRUxs1gTdGyhnhLkaZ0gz5IOhfHwubdRxpU1TI9HBPwPros7GbuCfwy8jgdHBpp4n9FXevh27l7UOqLRNhCR4_vb5O3hmbPY70E37QoIHwFuqJXigvWogJY1Rgs1cnVE8Oj33MjZOG5Eg/s1600-h/image%25255B5%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;237&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDSFLm1e07w5SKYshyphenhyphenN3RsI-XAjneGrfZnR0UNYODiBgda4Hn9hubMuQ0yoCf7nAowMTGd1SKc5s9ftay-Ja_6QVEGPkW8-tYb_8qhLjukiVih1IffsdI15ShPncxxjei7dTy0-fB34Z8//?imgmax=800&quot; style=&quot;background-image: none; border: 0px currentColor; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in 0in 0in 1.125in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.75in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;a&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;4&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Configure NET TCP Binding&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;i&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Right click on &#39;WorkflowService &#39; web site and click on &#39;Edit Bindings&#39; to open &#39;Site Bindings&#39; dialog.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;i&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;2&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Click on &#39;Add&#39; button to open&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&#39;Add Site Binding&#39; dialog.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;i&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;3&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;From &#39;Type&#39; dropdown select &#39;net.tcp&#39;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Type 808:* in Binding Information text box.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Click Ok.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in 0in 0in 1.125in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0in 0in 0in 1.125in;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc7vjkIuRmh54jUNYMmzOeWnNgvKdnulmNY3Ihdwv13WgY_Q3tehXX9_ZBWa9l14R7DOHV9qUgSwlVShHJLDHkuDTLtcKv-76T3DEVWXtZEz4mxJAVkQg9L24BkMvtIr4mlGp0bc8gG2o/s1600-h/clip_image001%25255B3%25255D.png&quot;&gt;&lt;img alt=&quot;clip_image001&quot; border=&quot;0&quot; height=&quot;135&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioWiT527mZeVe7zEgSBjxrrDspBsIz8AveNUk6yzosQOtD8GEj2PoDkjpYdDWrHtK1tqYiSniNgcMcjUoTLMRj3RM6UUySFtQjT7eOUWsziQ3Hq8H8HDI3N84DgZeI9pqnbSbFNx1srNQ//?imgmax=800&quot; style=&quot;background-image: none; border: 0px currentColor; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image001&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYku4X-XiT2NYjILzRKM9nMRYxgUBPJvuhLRE6p6_KD2N1xh4Z8XW2r1ZkVpiydb7Ka8NCPaENtmlwHMrlxY6dSqQ-fXQNYhLXpoZukANhxrcz8yexnTVD-tzccSbiC2CoxGlyTgUSon4/s1600-h/clip_image002%25255B3%25255D%25255B2%25255D.png&quot;&gt;&lt;img alt=&quot;clip_image002[3]&quot; border=&quot;0&quot; height=&quot;116&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmp3h2Gp0CJ7Y0Tu9nSWqkS6Y8bH6GXN5brdb3uVllrWB2mUVXOVttJvZswSXkDhVF7PgWUTSQDKOWCiq_Z5DvTaiYcewZ6A_t5VnS4hry85_X5eLKs95jQnH7SEdLRaMZzuYKcNqpeKI//?imgmax=800&quot; style=&quot;background-image: none; border: 0px currentColor; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;clip_image002[3]&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in 0in 0in 1.125in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0in 0in 0in 1.125in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in 0in 0in 0.75in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.75in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;a&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;5&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Enable NET TCP Binding on Web Site.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;i&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Select &#39;WorkflowService&#39; website node from left hand side tree view.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;i&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;2&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Click on &#39;Advanced Settings&#39; from &#39;Actions&#39; panel at right hand side.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Update &#39;Enabled Protocols&#39; field by adding comma delimited value as &#39;net.tcp&#39; at the end of the existing value.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Click &#39;Ok&#39;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in 0in 0in 1.125in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0in 0in 0in 1.125in;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXKp4M46DMfDsNQs75ZY2MACK4-L6dAiCCOkoWI7PBH-jkmLocHhdlbCSDL4d3mqWms8r4dpmHRSL3aA6rEc_C24IbiLPvj2z09javj3mzSHzWpDxZRBs5UFUdDqrI-e_X0aJ2MjChz-w/s1600-h/image%25255B8%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;244&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIHMUg6XcCfHknTBTR9Kj1MVd_eCqZKDKHBZaA-iu8OLSLNYU1oaVT6Dwf6bps1E209rGRMsvWqTkgvK763LUs0Zfe6BQxmVddsBBiC96jc9hGLRUso7XDH0vBfHrCBA5g_4A4g8Gx8uc//?imgmax=800&quot; style=&quot;background-image: none; border: 0px currentColor; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in 0in 0in 1.125in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;3&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Configure Visual Studio Project settings to use IIS as service host instead of default web development server.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;a&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Select your service project in Solution Explorer and press ALT+ENTER to open project properties dialog.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Click on &#39;Web&#39; tab on project properties dialog.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;On &#39;Web&#39; tab page, select &#39;Use local IIS Web Server&#39; radio button.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;a&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;4&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Click on &#39;Create Virtual Directory&#39; button to link your website project with IIS.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in 0in 0in 0.75in;&quot;&gt;
&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;(Note: This step will fail if Visual Studio is not running in Administrator privileges.)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in 0in 0in 0.75in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0in 0in 0in 0.75in;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8fchdV_LqFWRM3V06f-X9e1bcy0W2AdKpkdpV0wi2LWLwpuxddxWY7n5uXNUx7DRZjKu2u6WWH6S1slGkSUhV62jb4KGE0ub6aU8MvkhuFKKJmWKAOLd0YcNr_mUT9JzUzPqURnBu-78/s1600-h/image%25255B11%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;143&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5EBCOnKm5KVyTV9pl5nnQp4860Zga_5-HdnPtJ4EpMKjSavDScqF7jTMCLvyQHNlPWVDSqMXWh8Sf7VddW5zVzx2GLu4taued4c1-t1S7DV8CEFmP45J_4R9I-7h2KFgr45YFhORQ0oo//?imgmax=800&quot; style=&quot;background-image: none; border: 0px currentColor; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in 0in 0in 0.75in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;At this stage you have successfully configured IIS and Visual Studio to work together and help you debugging your WCF/Workflow services by just hitting on F5 button on Visual Studio. &lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;&lt;em&gt;If the above information is useful, Please provide your valuable&amp;nbsp;feedback. &lt;/em&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;&lt;em&gt;Thanks.&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stdeepdive.blogspot.com/feeds/4603857960393986617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://stdeepdive.blogspot.com/2012/02/hosting-wcfworkflow-service-in-iis.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6548459288910859437/posts/default/4603857960393986617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6548459288910859437/posts/default/4603857960393986617'/><link rel='alternate' type='text/html' href='http://stdeepdive.blogspot.com/2012/02/hosting-wcfworkflow-service-in-iis.html' title='Hosting WCF/Workflow Service in IIS directly from Visual Studio 2010 and start debugging by just hitting F5 on Visual Studio.'/><author><name>Arun Malik</name><uri>http://www.blogger.com/profile/15956288023137519332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdeMLkE7q3kJj6z_m5KqLDROlBFSWz0TINa5tIVfJOlPJOogyCcIslvLa0rroFCA_aan4N4Z_WUdBsrBHA0CspESla7a19tiTvzNf986oNS9mUFQWiUyI8-BaJdxtZ9aRdI9jDziBhFvY/s72-c/?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6548459288910859437.post-6314618371430653313</id><published>2012-02-01T06:16:00.000-08:00</published><updated>2012-02-02T20:50:20.661-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Windows Workflow"/><title type='text'>Create Workflow WCF Service using Visual Studio 2010.</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;strong&gt; &lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;div style=&quot;color: #222222; margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;color: #222222; font-family: arial; font-size: 16pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;background: white; font-weight: bold;&quot;&gt;&lt;span style=&quot;color: #4bacc6; font-size: medium;&quot;&gt;Create Workflow WCF Service.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Open Visual Studio 2010.&lt;/span&gt;  &lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt;&quot;&gt;Setup the Workflow WCF Service project using &#39;WCF Workflow Service Application&#39; template.&lt;/span&gt; &lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMClkmo93JL_MdtUoWSB4IwzRcrwI9a3_et6HFK5rL7UL-7tnw5g70hmPE7vQg-pxidXrzgmt7v8XTjgNwThpwYrEe9o4y8hok_5v9EeD8fsrMkXvd_Jnzp__97AcJ5VGW_8LV57NEHOY/s1600-h/image%25255B2%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;170&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFSE_rjk3XpNvqFSP579ZUgGZ67z4CcAgLwg36suCIxsSdPwMfeQOIJnw3Z-671AGhEJQBrsmYQYQuzxN4Aafr12ZersGgbUET5nbSnpsbg-_zzytznUdMkqq1FfjjTuEBJWD9fJL2ROE//?imgmax=800&quot; style=&quot;background-image: none; border: 0px currentColor; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;3&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Rename ‘Service1.xamlx’ to ‘WorkflowService.xamlx’. &lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;4&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Update &#39;ReceiveRequest&#39; Activity properties.&lt;/span&gt;  &lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Open the Property Window for ‘ReceiveRequest’ activity.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;2&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Change ‘OperationName field value to ‘PingService’.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;3&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Change ‘ServiceContractName’ to ‘WorkflowService.IWorkflowService’.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;5&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Update Workflow Variables in &#39;Variables&#39; pane.&lt;/span&gt; &lt;/li&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Click on &#39;Variables&#39; tab just below the Workflow Designer Area to open it.&lt;/span&gt;  &lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt;&quot;&gt;Change the &#39;Variable Type&#39; column of &#39;data&#39; variable to &#39;String&#39; type.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkHnzlBG0InRNaJ2QtP-2mp0yeQSRHLwxUjmqxELQNicLSsKe9zxeNDDGpudyuh9XKjRNi9V5U7FJm4jXEd7eotJ4-DU7oUtn593VHLn1in65y68J1qtdx0zTFFZnRHt4MUUje46f9xSA/s1600-h/image%25255B14%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;109&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWrwgJ85pE4MH7FO-xt-_0_EIi2EOgpvaB4SuWQYofHnswU_z2kcA1YntUI0squ2pvqeWHbraUu7YDg-Uq2TzJJasVSEYIMqbczrq8aVa_3yn3XEav-1sTjlDk-OANaujmvdZEO5T6QZA//?imgmax=800&quot; style=&quot;background-image: none; border: 0px currentColor; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;color: #222222; font-family: arial; font-size: 9pt; margin: 0in 0in 0in 0.75in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;6&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Add new activity to implement some logic for Workflow Service.&lt;/span&gt; &lt;/li&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Open ToolBox Window.&lt;/span&gt; &lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;2&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Open &#39;Primitives&#39; Category.&lt;/span&gt; &lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;3&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Drag ‘InvokeMethod’ activity between &#39;ReceiveRequest&#39; and &#39;SendResponse&#39; Activities on Workflow Designer.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;7&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Write some code which will be invoked by workflow.&lt;/span&gt; &lt;/li&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Add new class to project with name ‘WorkflowServicePingImp’. &lt;/span&gt; &lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt;&quot;&gt;Add a static method to the ‘WorkflowServicePingImp’ class with the name ‘PingResponse’. This method will take a string argument and return a string value as response.&lt;/span&gt;  &lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt;&quot;&gt;Compile the solutions.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbyqWMIsKcZ4sxrpAAoy_e1SfvoFczf1AFeiA4mjyTiscARFvHzX0WA1s5UM6df73JjdUoPeDH5BXyZEOt0u8aN9RoVmrlLMhmSnpmfp7YRGkbrGiYQmxFBUN9Ly6h60uvmwna4RezHUw/s1600-h/image%25255B20%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;83&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG7JkmK5EyMjqNGnvr7DHFnOSBFt9YxrTpxGzPBjeqCwXiH3RbvzgCLpVoCpx6ExrZSJrd6POu1gDQvvttkImxcW7FrmyVOdLGMBqrxG83VqdVUYz_b1reli5IZymJ6yxPTmeMep6s3lg//?imgmax=800&quot; style=&quot;background-image: none; border: 0px currentColor; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;8&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Update &#39;InvokeMethod&#39; Activity properties to invoke our implementation from &#39;WorkflowServicePingImp&#39; class.&lt;/span&gt;  &lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Open the Property Window for ‘InvokeMethod’ activity.&lt;/span&gt;  &lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt;&quot;&gt;Change the &#39;TargetType&#39; field value to ‘WorkflowServicePingImp’.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;3&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Change the &#39;MethodName&#39; field value to ‘PingResponse’.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;4&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Change the &#39;Parameters&#39; collection by adding new parameter with &#39;Value&#39; field as &#39;data&#39; , &#39;Direction&#39; as &#39;In&#39; and &#39;Type&#39; as &#39;String&#39;.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;5&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Change the &#39;Result&#39; field value to &#39;data&#39;.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;color: #222222; font-family: arial; font-size: 9pt; margin: 0in 0in 0in 0.75in;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU7M8qiGFwXJ75yaiB09eHcCzejftJ4Jhu2DIfcnfeEG4zx6MO1c2OpDOhxvFrRkRa1weJynJwvOvDe8Sg4Lh4w-lGsPTIMPdsZMXeE8KAzrX7EigEL4bsHoM_9xiwcrteG4VVycfoUVQ/s1600-h/image%25255B17%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;107&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_FK5Wd1JOQskob0IWOPpvh62gcpXf1VLu3fRuiPeP_7ARwVpCtwm88dpcvZgMeL4mglcZj6RNGH7-6Wumewdl1zBXvkMY3jVuCYCI2EG64L8SmkBACtcUIoXsdg1VZsZwlQeNIw93J-s//?imgmax=800&quot; style=&quot;background-image: none; border: 0px currentColor; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;color: #222222; font-family: arial; font-size: 16pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;background: white; font-weight: bold;&quot;&gt;&lt;span style=&quot;color: #4bacc6; font-size: medium;&quot;&gt;Run and Test the Workflow Service Directly from Visual Studio 2010.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Right click on &#39;WorkflowService.xamlx&#39; file and click on &#39;Set As Start Page&#39; to set it as start up page for the project.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;2&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Press F5 to run the solution.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;( Visual Studio will run the workflow service in development server in some arbitrary port.)&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;3&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;WCF test client will comp up.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGaccbib99WCEdjtxY_9aUXgx3eTNCg8n6oouWdvpN5Jlxi4kh09Rm0tV88hRPpkEBbpGHpiqLkwXkQv9w1EIrYlU7QzRnB5ojg8ziINCyl36NZtl0H7fpiE4v5sOHApvy7g46MxyL9io/s1600-h/image%25255B23%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;156&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJZ_I7XhUyuJ_csEl1Z4HwozYlo5T6g3_AmSlmEQaQTjG01mWOzCfVsLVNtDq3233mu-qigA7N5Y_HQaHk6nSjFUZQdlKcDvE9j521xuoDkAgYuCnNENMs5IyAI8a2sl7pacZMPs2iAh4//?imgmax=800&quot; style=&quot;background-image: none; border: 0px currentColor; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;4&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Double Click on &#39;PingService&#39; node on left hand side tree view.&lt;/span&gt; &lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAotuScblMdrkz4RcoQloxsvbhAiXVoSfAw5rprz5R61SpfNQmb3uaEEoFiTy3CGRBcMAeysifhblyQQw4h54Vg1CMtBPT-wj-WkTDTDluxkbicFHcK6s51-jnQ2JNEG6IogqBGlTTHaU/s1600-h/image%25255B26%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;156&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIlqpftkZ8I6OU2J2e7yeWfQ97a-rP3CS4OtFOZLcNebvdtS5Zd9dJBFRTRKpKHTX4nmbZ6WRZQz4YXbSDRhIjg82se7Q5ENi1SYYR4dPJGwiUtM0yJpThc2VNyWkf_YA4v-UugBLtdmE//?imgmax=800&quot; style=&quot;background-image: none; border: 0px currentColor; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt;&quot;&gt;Put some string in the &#39;Value&#39; column in &#39;Request&#39; panel.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWLvT6Bn5fY5fKlYxLga779Z-dRSlHmERRsPoqVTiNrOcyoiom3ZE1xa_FNOtDj44eIC2qJ2t2vo9pCGjKfytfIENOUhQVbrDiwrs7feqJku9NlA3BtoSNBG_lLB9S8hc6u59c111ul7I/s1600-h/image%25255B29%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;156&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6-cvkaDqeoCf6xN9x1LW-2GJe0LbYiGnJPC0s3wiIsvhK6ZuQTc2WyCL-xFnvhEpJVinAG6l-gFDu_avmYg_bJiH4s3bPRfE0iD7QuxtBUfIhR7gmBftQy_6T-tzQp4u6ZUemNndvovE//?imgmax=800&quot; style=&quot;background-image: none; border: 0px currentColor; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;ol style=&quot;direction: ltr; font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;6&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Click on &#39;invoke&#39; button.&lt;/span&gt; &lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;7&quot;&gt;&lt;span style=&quot;font-family: calibri; font-size: 11pt; font-style: normal; font-weight: normal;&quot;&gt;Output will be shown in &#39;Response&#39; panel.&lt;/span&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;/strong&gt;            &lt;br /&gt;
&lt;blockquote&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis72cN5rsen69mcTFNaQ3Y99iYxv_TWJm6CaJT0jixVImxtNAx-6pUZEdY_5qBq9GAP29WWZXsZuPuPcqyJXeyQe2Um_efrdIz9oHwWZ9J6CHp23S_HJlnplA-682Urn2xTnroW6DrXNI/s1600-h/image%25255B32%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;156&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqIYb7fmye6G-SDMTmjEnm2WZnbsd1tpBFFu8HGRJdL2BSvlxEocKhoSfcmGRhOltDltfxth6f4qU-80emfSvVzQ7QnU9ulvGwgSfuKZSI-1HaevzaQJl8oZokYnIbRXrCMDOZJEfZAAE//?imgmax=800&quot; style=&quot;background-image: none; border: 0px currentColor; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;&lt;em&gt;If the above information is useful, Please provide your valuable feedback. &lt;/em&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri; font-size: 11pt; margin: 0in;&quot;&gt;
&lt;em&gt;&lt;span style=&quot;font-family: Arial; font-size: x-small;&quot;&gt;Thanks.&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stdeepdive.blogspot.com/feeds/6314618371430653313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://stdeepdive.blogspot.com/2012/02/create-workflow-wcf-service-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6548459288910859437/posts/default/6314618371430653313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6548459288910859437/posts/default/6314618371430653313'/><link rel='alternate' type='text/html' href='http://stdeepdive.blogspot.com/2012/02/create-workflow-wcf-service-using.html' title='Create Workflow WCF Service using Visual Studio 2010.'/><author><name>Arun Malik</name><uri>http://www.blogger.com/profile/15956288023137519332</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFSE_rjk3XpNvqFSP579ZUgGZ67z4CcAgLwg36suCIxsSdPwMfeQOIJnw3Z-671AGhEJQBrsmYQYQuzxN4Aafr12ZersGgbUET5nbSnpsbg-_zzytznUdMkqq1FfjjTuEBJWD9fJL2ROE/s72-c/?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry></feed>