<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Paolo Pialorsi - Bridge The Gap!</title><subtitle type="html">Living in a Service Oriented World</subtitle><id>http://weblogs.asp.net/paolopia/atom.aspx</id><link rel="alternate" type="text/html" href="http://weblogs.asp.net/paolopia/default.aspx" /><link rel="self" type="application/atom+xml" href="http://weblogs.asp.net/paolopia/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20510.895">Community Server</generator><updated>2007-06-05T17:06:26Z</updated><entry><title>Microsoft SharePoint 2010 Developer Reference</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/paolopia/archive/2011/04/02/microsoft-sharepoint-2010-developer-reference.aspx" /><id>http://weblogs.asp.net/paolopia/archive/2011/04/02/microsoft-sharepoint-2010-developer-reference.aspx</id><published>2011-04-02T07:31:13Z</published><updated>2011-04-02T07:31:13Z</updated><content type="html">&lt;p&gt;Starting from today it is &lt;a href="http://www.amazon.com/dp/0735639035/" target="_blank"&gt;available&lt;/a&gt; my latest book about SharePoint 2010.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.amazon.com/dp/0735639035/" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" border="0" src="http://www.sharepoint-reference.com/Images1/Microsoft-SharePoint2010-Developer-Reference-FrontCover.png" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It has been a huge task to write this book and it took me almost 100% of the last year. However, I really like the result and I hope you will enjoy reading it. I’d like also to announce the availability of a new web site and blog about SharePoint 2010 development: &lt;a href="http://www.sharepoint-reference.com/"&gt;http://www.sharepoint-reference.com/&lt;/a&gt; .&lt;/p&gt;  &lt;p&gt;Here you will find useful information and blog posts about developing solutions with Microsoft SharePoint 2010 and Microsoft Office 365.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In the mean time, I’m looking forward to meet you at the upcoming &lt;a href="http://www.sharepointconference.it/" target="_blank"&gt;Microsoft SharePoint &amp;amp; Office Conference 2011&lt;/a&gt; which will take place in Milan from 19th to 21st of April.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7741383" width="1" height="1"&gt;</content><author><name>paolopia</name><uri>http://weblogs.asp.net/members/paolopia.aspx</uri></author><category term="SharePoint" scheme="http://weblogs.asp.net/paolopia/archive/tags/SharePoint/default.aspx" /></entry><entry><title>Programming Microsoft LINQ in Microsoft .NET Framework 4</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/paolopia/archive/2010/12/02/programming-microsoft-linq-in-microsoft-net-framework-4.aspx" /><id>http://weblogs.asp.net/paolopia/archive/2010/12/02/programming-microsoft-linq-in-microsoft-net-framework-4.aspx</id><published>2010-12-02T17:00:00Z</published><updated>2010-12-02T17:00:00Z</updated><content type="html">&lt;P&gt;It is available my latest book about LINQ in .NET 4.0. You can find it &lt;A href="http://www.amazon.com/dp/0735640572/" target=_blank mce_href="http://www.amazon.com/dp/0735640572/"&gt;here&lt;/A&gt;. It is a complete reviewed edition starting from the previous one. We (I and &lt;A href="http://sqlblog.com/blogs/marco_russo/" target=_blank mce_href="http://sqlblog.com/blogs/marco_russo/"&gt;Marco Russo&lt;/A&gt;) wrote 6 new chapters and updated 5 already existing chapter.&lt;/P&gt;
&lt;P&gt;The result is a book that I really like. Hope you will like it, too. Now I’m working on the &lt;A href="http://www.amazon.com/dp/0735639035/" target=_blank mce_href="http://www.amazon.com/dp/0735639035/"&gt;SharePoint 2010 Developer Reference&lt;/A&gt;, which will be released in early 2011.&lt;/P&gt;
&lt;P&gt;Enjoy your reading!&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7654183" width="1" height="1"&gt;</content><author><name>paolopia</name><uri>http://weblogs.asp.net/members/paolopia.aspx</uri></author><category term=".NET" scheme="http://weblogs.asp.net/paolopia/archive/tags/.NET/default.aspx" /><category term="SharePoint" scheme="http://weblogs.asp.net/paolopia/archive/tags/SharePoint/default.aspx" /></entry><entry><title>My TechEd 2008 EMEA Session's demo files: OFC03-IS</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/paolopia/archive/2008/11/24/my-teched-2008-emea-session-s-demo-files-ofc03-is.aspx" /><id>http://weblogs.asp.net/paolopia/archive/2008/11/24/my-teched-2008-emea-session-s-demo-files-ofc03-is.aspx</id><published>2008-11-24T08:44:15Z</published><updated>2008-11-24T08:44:15Z</updated><content type="html">&lt;p&gt;&lt;a href="http://devlab.devleap.it/PaoloPi/MSTechEd-2008-EMEA/OFC03-IS-Demos.zip"&gt;Here&lt;/a&gt; you can find the &lt;a href="http://devlab.devleap.it/PaoloPi/MSTechEd-2008-EMEA/OFC03-IS-Demos.zip"&gt;demos&lt;/a&gt; of my last TechEd 2008 EMEA Session about &amp;quot;Deploying and Updating SharePont Solutions using features and templates&amp;quot;. I hope you enjoy them.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6751191" width="1" height="1"&gt;</content><author><name>paolopia</name><uri>http://weblogs.asp.net/members/paolopia.aspx</uri></author><category term="SharePoint" scheme="http://weblogs.asp.net/paolopia/archive/tags/SharePoint/default.aspx" /></entry><entry><title>Amazing TechEd Online interview about being a book author</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/paolopia/archive/2008/06/05/amazing-teched-online-interview-about-being-a-book-author.aspx" /><id>http://weblogs.asp.net/paolopia/archive/2008/06/05/amazing-teched-online-interview-about-being-a-book-author.aspx</id><published>2008-06-05T16:54:36Z</published><updated>2008-06-05T16:54:36Z</updated><content type="html">&lt;p&gt;On Tuesday I and my friend Marco Russo have been interviewed by Ken Rosen about our book writing experience. In fact a couple of weeks ago became available our &lt;a href="http://www.programminglinq.com/"&gt;last book about LINQ&lt;/a&gt;. The interview focuses on the book itselft, but also on the experience to being an author for Microsoft Press.&lt;/p&gt;  &lt;p&gt;If you are interested ... please have a look at the video (&lt;a href="http://microsofttech.fr.edgesuite.net/TechEdOnline/Videos/08_NA_Dev_techtalk_12_high.wmv"&gt;high res&lt;/a&gt; - &lt;a href="http://mfile.akamai.com/14853/wmv/microsofttec.download.akamai.com/14853/TechEdOnline/Videos/08_NA_Dev_techtalk_12_low.asx"&gt;low res&lt;/a&gt;) from &lt;a href="http://www.microsoft.com/techedonline/default.aspx"&gt;TechEd Online&lt;/a&gt; officale web site and don't lose the chance to hear our strictly Italian English :-)&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6250545" width="1" height="1"&gt;</content><author><name>paolopia</name><uri>http://weblogs.asp.net/members/paolopia.aspx</uri></author><category term="Others" scheme="http://weblogs.asp.net/paolopia/archive/tags/Others/default.aspx" /></entry><entry><title>WCF Security Guidance: Patterns &amp; Practices</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/paolopia/archive/2008/05/18/wcf-security-guidance-patterns-amp-practices.aspx" /><id>http://weblogs.asp.net/paolopia/archive/2008/05/18/wcf-security-guidance-patterns-amp-practices.aspx</id><published>2008-05-18T07:53:05Z</published><updated>2008-05-18T07:53:05Z</updated><content type="html">&lt;p&gt;As you can argue reading this blog, I'm a WCF lover and in particular I'm really crazy for it's security infrastructure and architecture. Some Microsoft guys have made available &lt;a href="http://www.codeplex.com/WCFSecurity"&gt;a set of great contents&lt;/a&gt; (&amp;quot;how tos&amp;quot;, &amp;quot;application scenarios&amp;quot;, &amp;quot;guidelines&amp;quot;, &amp;quot;practices&amp;quot; and &amp;quot;Q&amp;amp;A&amp;quot;) indeed to help the community of WCF developers to build secure and interoperable WCF Services. The project is really interesting and I suggest you to take a look at it, before implementing a real WCF solution.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6200364" width="1" height="1"&gt;</content><author><name>paolopia</name><uri>http://weblogs.asp.net/members/paolopia.aspx</uri></author><category term="WCF (Indigo)" scheme="http://weblogs.asp.net/paolopia/archive/tags/WCF+_2800_Indigo_2900_/default.aspx" /></entry><entry><title>WCF configuration default limits, concurrency and scalability</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/paolopia/archive/2008/03/23/wcf-configuration-default-limits-concurrency-and-scalability.aspx" /><id>http://weblogs.asp.net/paolopia/archive/2008/03/23/wcf-configuration-default-limits-concurrency-and-scalability.aspx</id><published>2008-03-23T17:47:22Z</published><updated>2008-03-23T17:47:22Z</updated><content type="html">&lt;p&gt;Often I need to enumerate to my customers all the main configuration parameters related to default limits, concurrency and scalability of WCF, thus I decided to keep truck of all those parameters and features in order to have a unique place for reference.&lt;/p&gt;  &lt;p&gt;From a configuration point of view, WCF provides some parameters that influence the availability and scalability of solutions. These parameters are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;configuration/system.serviceModel/behaviors/serviceBehaviors/behavior/serviceThrottling/@maxConcurrentCalls: defines the maximum number of messages actively processed by all the service instances of a ServiceHost. The default value is 16. Calls in excess of the limit are queued. &lt;/li&gt;    &lt;li&gt;configuration/system.serviceModel/behaviors/serviceBehaviors/behavior/serviceThrottling/@maxConcurrentInstances: defines the maximum number of service instances that can execute at the same time. The default value is Int32.MaxValue. Requests to create additional instances are queued and complete when a slot below the limit becomes available. &lt;/li&gt;    &lt;li&gt;configuration/system.serviceModel/behaviors/serviceBehaviors/behavior/serviceThrottling/@maxConcurrentSessions: defines the maximum number of sessions that a ServiceHost instace can accept at one time. The default value is 10. The service will accept connections in excess of the limit, but only the channels below the limit are active (messages are read from the channel). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;These configuration parameters can also be configured by code using the ServiceThrottlingBehavior configuration.&lt;/p&gt;  &lt;p&gt;Another set of interesting configuration parameters are those related to the default limits of messages, serialization measures, etc. of the various bindings. Here are the main ones, with the default values for each of the main bindings:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="overflow: auto"&gt;   &lt;table style="width: 1874pt; border-collapse: collapse" cellspacing="0" cellpadding="0" width="2498" border="0"&gt;&lt;colgroup&gt;&lt;col style="width: 210pt; mso-width-source: userset; mso-width-alt: 10240" width="280" /&gt;&lt;col style="width: 214pt; mso-width-source: userset; mso-width-alt: 10422" width="285" /&gt;&lt;col style="width: 132pt; mso-width-source: userset; mso-width-alt: 6436" width="176" /&gt;&lt;col style="width: 130pt; mso-width-source: userset; mso-width-alt: 6326" width="173" /&gt;&lt;col style="width: 132pt; mso-width-source: userset; mso-width-alt: 6436" width="176" /&gt;&lt;/colgroup&gt;&lt;tbody&gt;       &lt;tr style="height: 15pt" height="20"&gt;         &lt;td class="xl68" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #4f81bd; border-left: medium none; width: 210pt; color: white; border-bottom: white 1.5pt solid; font-family: calibri; height: 15pt; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #4f81bd none" width="280" height="20"&gt;Parameter&lt;/td&gt;          &lt;td class="xl68" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #4f81bd; border-left: medium none; width: 214pt; color: white; border-bottom: white 1.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #4f81bd none" width="285"&gt;Description&lt;/td&gt;          &lt;td class="xl68" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #4f81bd; border-left: medium none; width: 132pt; color: white; border-bottom: white 1.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #4f81bd none" width="176"&gt;basicHttpBinding&lt;/td&gt;          &lt;td class="xl68" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #4f81bd; border-left: medium none; width: 132pt; color: white; border-bottom: white 1.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #4f81bd none" width="176"&gt;           &lt;div style="overflow: auto"&gt;&lt;span codelanguage="other"&gt;basicHttpContextBinding&lt;/span&gt;&lt;/div&gt;         &lt;/td&gt;          &lt;td class="xl68" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #4f81bd; border-left: medium none; width: 130pt; color: white; border-bottom: white 1.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #4f81bd none" width="173"&gt;netMsmqBinding&lt;/td&gt;          &lt;td class="xl68" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #4f81bd; border-left: medium none; width: 132pt; color: white; border-bottom: white 1.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #4f81bd none" width="176"&gt;netNamedPipeBinding&lt;/td&gt;          &lt;td class="xl68" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #4f81bd; border-left: medium none; width: 132pt; color: white; border-bottom: white 1.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #4f81bd none" width="176"&gt;netTcpBinding&lt;/td&gt;          &lt;td class="xl68" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #4f81bd; border-left: medium none; width: 132pt; color: white; border-bottom: white 1.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #4f81bd none" width="176"&gt;netTcpContextBinding&lt;/td&gt;          &lt;td class="xl68" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #4f81bd; border-left: medium none; width: 132pt; color: white; border-bottom: white 1.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #4f81bd none" width="176"&gt;webHttpBinding&lt;/td&gt;          &lt;td class="xl68" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #4f81bd; border-left: medium none; width: 132pt; color: white; border-bottom: white 1.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #4f81bd none" width="176"&gt;wsHttpBinding&lt;/td&gt;          &lt;td class="xl68" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #4f81bd; border-left: medium none; width: 132pt; color: white; border-bottom: white 1.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #4f81bd none" width="176"&gt;wsHttpContextBinding&lt;/td&gt;          &lt;td class="xl68" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #4f81bd; border-left: medium none; width: 132pt; color: white; border-bottom: white 1.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #4f81bd none" width="176"&gt;wsDualHttpBinding&lt;/td&gt;          &lt;td class="xl68" style="border-right: medium none; border-top: medium none; font-weight: 700; font-size: 11pt; background: #4f81bd; border-left: medium none; width: 132pt; color: white; border-bottom: white 1.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #4f81bd none" width="176"&gt;ws2007HttpBinding&lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 75pt" height="100"&gt;         &lt;td class="xl69" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; height: 75pt; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" height="100"&gt;maxBufferPoolSize&lt;/td&gt;          &lt;td class="xl67" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 214pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="285"&gt;An integer value that specifies the maximum amount of memory that is allocated for use by the manager of the message buffers that receive messages from the channel.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 524,288 bytes (512 * 1024 = 0x80000 = 512Kb).&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 524,288 bytes (512 * 1024 = 0x80000 = 512Kb).&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 130pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="173"&gt;The default is 8 bytes.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 524,288 bytes (512 * 1024 = 0x80000 = 512Kb).&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 524,288 bytes (512 * 1024 = 0x80000 = 512Kb).&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 524,288 bytes (512 * 1024 = 0x80000 = 512Kb).&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 524,288 bytes (512 * 1024 = 0x80000 = 512Kb).&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 524,288 bytes (512 * 1024 = 0x80000 = 512Kb).&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 524,288 bytes (512 * 1024 = 0x80000 = 512Kb).&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 524,288 bytes (512 * 1024 = 0x80000 = 512Kb).&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: medium none; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 524,288 bytes (512 * 1024 = 0x80000 = 512Kb).&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 90pt" height="120"&gt;         &lt;td class="xl70" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 210pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; height: 90pt; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="280" height="120"&gt;maxBufferSize&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl67" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 214pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="285"&gt;An integer value that specifies the maximum size, in bytes, of a buffer that stores messages while they are processed for an endpoint configured with this binding. This value cannot be less than the next maxReceivedMessageSize attribute.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 65,536 bytes (64Kb).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 65,536 bytes (64Kb).&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 65,536 bytes (64Kb).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;           &lt;p&gt;The default is 65,536 bytes (64Kb). If the transferMode attribute equals to Buffered, this attribute should be equal to the maxReceivedMessageSize attribute value. &lt;/p&gt;            &lt;p&gt;If the transferMode attribute equals to Streamed, this attribute cannot be more than the maxReceivedMessageSize attribute value, and should be at least the size of the headers.&lt;/p&gt;         &lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;           &lt;p&gt;The default is 65,536 bytes (64Kb). If the transferMode attribute equals to Buffered, this attribute should be equal to the maxReceivedMessageSize attribute value. &lt;/p&gt;            &lt;p&gt;If the transferMode attribute equals to Streamed, this attribute cannot be more than the maxReceivedMessageSize attribute value, and should be at least the size of the headers.&lt;/p&gt;         &lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 524,288 bytes (512 * 1024 = 0x80000 = 512Kb).&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: medium none; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none"&gt;Not Available&lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 75pt" height="100"&gt;         &lt;td class="xl70" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 210pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; height: 75pt; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="280" height="100"&gt;maxRetryCycles            &lt;br /&gt;&lt;/td&gt;          &lt;td class="xl67" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 214pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="285"&gt;An integer that indicates the number of retry cycles used by the poison-message detection feature. A message becomes a poison message when it fails all delivery attempts of all cycles.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl72" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: red; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;The default is 2.&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: medium none; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 105pt" height="140"&gt;         &lt;td class="xl69" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; height: 105pt; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" height="140"&gt;maxReceivedMessageSize&lt;/td&gt;          &lt;td class="xl67" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 214pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="285"&gt;A positive integer that defines the maximum message size, in bytes, including headers, for a message that can be received on a channel configured with this binding. The sender receives a SOAP fault if the message is too large for the receiver. The receiver drops the message and creates an entry of the event in the trace log. This bound on message size is intended to limit exposure to Denial of Service (DoS) attacks.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 65,536 bytes (64Kb).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 65,536 bytes (64Kb).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 130pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="173"&gt;The default is 65,536 bytes (64Kb).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 65,536 bytes (64Kb).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 65,536 bytes (64Kb).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 65,536 bytes (64Kb).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 65,536 bytes (64Kb). Increasing this value alone is not sufficient in ASP.NET compatible mode. You should also increase the value of httpRuntime.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 65,536 bytes (64Kb).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 65,536 bytes (64Kb).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 65,536 bytes (64Kb).&lt;/td&gt;          &lt;td class="xl66" style="border-right: medium none; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 65,536 bytes (64Kb).&lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 30pt" height="40"&gt;         &lt;td class="xl70" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 210pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; height: 30pt; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="280" height="40"&gt;maxConnections            &lt;br /&gt;&lt;/td&gt;          &lt;td class="xl67" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 214pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="285"&gt;           &lt;p&gt;An integer that specifies the maximum number of outbound and inbound connections the service will create/accept. Incoming and outgoing connections are counted against a separate limit specified by this attribute. &lt;/p&gt;            &lt;p&gt;Inbound connections in excess of the limit are queued until a space below the limit becomes available. &lt;/p&gt;            &lt;p&gt;Outbound connections in excess of the limit are queued until a space below the limit becomes available.&lt;/p&gt;         &lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 10.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 10.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 10.&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: medium none; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 60pt" height="80"&gt;         &lt;td class="xl69" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; height: 60pt; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" height="80"&gt;openTimeout&lt;/td&gt;          &lt;td class="xl67" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 214pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="285"&gt;A TimeSpan value that specifies the interval of time provided for an open operation to complete. This value should be greater than or equal to Zero.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 130pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="173"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: medium none; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 60pt" height="80"&gt;         &lt;td class="xl70" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 210pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; height: 60pt; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="280" height="80"&gt;closeTimeout            &lt;br /&gt;&lt;/td&gt;          &lt;td class="xl67" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 214pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="285"&gt;A TimeSpan value that specifies the interval of time provided for a close operation to complete. This value should be greater than or equal to Zero.&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 130pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="173"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: medium none; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 75pt" height="100"&gt;         &lt;td class="xl70" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 210pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; height: 75pt; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="280" height="100"&gt;receiveRetryCount            &lt;br /&gt;&lt;/td&gt;          &lt;td class="xl67" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 214pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="285"&gt;An integer that specifies the maximum number of times the queue manager should attempt to send a message before transferring it to the retry queue.            &lt;br /&gt;&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none"&gt;The default is 5.&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: medium none; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none"&gt;Not Available&lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 60pt" height="80"&gt;         &lt;td class="xl69" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; height: 60pt; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" height="80"&gt;receiveTimeout&lt;/td&gt;          &lt;td class="xl67" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 214pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="285"&gt;A TimeSpan value that specifies the interval of time provided for a receive operation to complete. This value should be greater than or equal to Zero.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 00:10:00 (10 minutes).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 00:10:00 (10 minutes).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 130pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="173"&gt;The default is 00:10:00 (10 minutes).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 00:10:00 (10 minutes).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 00:10:00 (10 minutes).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 00:10:00 (10 minutes).&lt;/td&gt;          &lt;td class="xl71" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: red; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 00:10:00 (10 minutes).&lt;/td&gt;          &lt;td class="xl71" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: red; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 00:10:00 (10 minutes).&lt;/td&gt;          &lt;td class="xl71" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: red; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 00:10:00 (10 minutes).&lt;/td&gt;          &lt;td class="xl71" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: red; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 00:10:00 (10 minutes).&lt;/td&gt;          &lt;td class="xl71" style="border-right: medium none; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: red; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 00:10:00 (10 minutes).&lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 60pt" height="80"&gt;         &lt;td class="xl69" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; height: 60pt; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" height="80"&gt;sendTimeout&lt;/td&gt;          &lt;td class="xl67" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 214pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="285"&gt;A TimeSpan value that specifies the interval of time provided for a send operation to complete. This value should be greater than or equal to Zero.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 130pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="173"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;          &lt;td class="xl66" style="border-right: medium none; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:01:00 (1 minute).&lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 45pt" height="60"&gt;         &lt;td class="xl70" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 210pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; height: 45pt; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="280" height="60"&gt;timeToLive&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl67" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 214pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="285"&gt;A TimeSpan value that specifies how long the messages are valid before they are expired and put into the dead-letter queue.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 130pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="173"&gt;The default is 1.00:00:00.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: medium none; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none"&gt;Not Available&lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 30pt" height="40"&gt;         &lt;td class="xl69" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; height: 30pt; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" height="40"&gt;reliableSession/@inactivityTimeout&lt;/td&gt;          &lt;td class="xl67" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 214pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="285"&gt;           &lt;p&gt;A TimeSpan that specifies the maximum duration the channel is going to allow the other communicating party not to send any messages before faulting the channel. &lt;/p&gt;            &lt;p&gt;Activity on a channel is defined as receiving an application or infrastructure message. If no activity is detected for the time specified by this attribute, the session is aborted by the infrastructure and the channel faults. The reliable session is aborted.&lt;/p&gt;         &lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:10:00 (10 minutes).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:10:00 (10 minutes).&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none"&gt;Not Available&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:10:00 (10 minutes).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:10:00 (10 minutes).&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:10:00 (10 minutes).&lt;/td&gt;          &lt;td class="xl66" style="border-right: medium none; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 00:10:00 (10 minutes).&lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 30pt" height="40"&gt;         &lt;td class="xl69" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; height: 30pt; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" height="40"&gt;readerQuotas/@maxDepth&lt;/td&gt;          &lt;td class="xl67" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 214pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="285"&gt;A positive integer that specifies the maximum nested node depth per read.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 32.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 32.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 130pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="173"&gt;The default is 32.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 32.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 32.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 32.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 32.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 32.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 32.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 32.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: medium none; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 32.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 45pt" height="60"&gt;         &lt;td class="xl69" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; height: 45pt; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" height="60"&gt;readerQuotas/@maxStringContentLength&lt;/td&gt;          &lt;td class="xl67" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 214pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="285"&gt;A positive integer that specifies the maximum characters allowed in XML element content.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 8192.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 8192.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 130pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="173"&gt;The default is 8192.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 8192.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 8192.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 8192.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 8192.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 8192.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 8192.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 8192.&lt;/td&gt;          &lt;td class="xl66" style="border-right: medium none; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 8192.&lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 30pt" height="40"&gt;         &lt;td class="xl69" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; height: 30pt; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" height="40"&gt;readerQuotas/@maxArrayLength&lt;/td&gt;          &lt;td class="xl67" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 214pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="285"&gt;A positive integer that specifies the maximum allowed array length.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;           &lt;div style="overflow: auto"&gt;The default is 16384.&lt;/div&gt;         &lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;           &lt;div style="overflow: auto"&gt;The default is 16384.&lt;/div&gt;         &lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 130pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="173"&gt;           &lt;div style="overflow: auto"&gt;The default is 16384.&lt;/div&gt;         &lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;           &lt;div style="overflow: auto"&gt;The default is 16384.&lt;/div&gt;         &lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;           &lt;div style="overflow: auto"&gt;The default is 16384.&lt;/div&gt;         &lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;           &lt;div style="overflow: auto"&gt;The default is 16384.&lt;/div&gt;         &lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;           &lt;div style="overflow: auto"&gt;The default is 16384.&lt;/div&gt;         &lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;           &lt;div style="overflow: auto"&gt;The default is 16384.&lt;/div&gt;         &lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;           &lt;div style="overflow: auto"&gt;The default is 16384.&lt;/div&gt;         &lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;           &lt;div style="overflow: auto"&gt;The default is 16384.&lt;/div&gt;         &lt;/td&gt;          &lt;td class="xl66" style="border-right: medium none; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;           &lt;div style="overflow: auto"&gt;The default is 16384.&lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 30pt" height="40"&gt;         &lt;td class="xl69" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #dbe5f1; border-left: medium none; color: black; border-bottom: white 0.5pt solid; font-family: calibri; height: 30pt; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" height="40"&gt;readerQuotas/@maxBytesPerRead&lt;/td&gt;          &lt;td class="xl67" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 214pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="285"&gt;A positive integer that specifies the maximum allowed bytes returned per read.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 4096.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 4096.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 130pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="173"&gt;The default is 4096.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 4096.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 4096.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 4096.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 4096.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 4096.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 4096.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 4096.&lt;/td&gt;          &lt;td class="xl66" style="border-right: medium none; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 132pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="176"&gt;The default is 4096.&lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 45pt" height="60"&gt;         &lt;td class="xl69" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #b8cce4; border-left: medium none; color: black; border-bottom: medium none; font-family: calibri; height: 45pt; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" height="60"&gt;readerQuotas/@maxNameTableCharCount&lt;/td&gt;          &lt;td class="xl67" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 214pt; color: black; border-bottom: medium none; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="285"&gt;A positive integer that specifies the maximum characters allowed in a table name.&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: medium none; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 16384.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: medium none; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 16384.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 130pt; color: black; border-bottom: medium none; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="173"&gt;The default is 16384.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: medium none; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 16384.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: medium none; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 16384.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: medium none; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 16384.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: medium none; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 16384.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: medium none; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 16384.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: medium none; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 16384.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 132pt; color: black; border-bottom: medium none; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 16384.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;          &lt;td class="xl66" style="font-weight: 400; font-size: 11pt; background: #b8cce4; width: 132pt; color: black; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="176"&gt;The default is 16384.&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt;  &lt;p&gt;Sorry for the big table layout. Many of these parameters are taken &amp;quot;as they are&amp;quot; from the product documentation. The only thing I've done is to write them in a unique and common place, for further reference. The red values seem to be different (using .NET Reflector) from the MSDN documented values. I hope that I didn't make mistakes, otherwise please drop me a comment ... thanks.&lt;/p&gt;  &lt;p&gt;One last set of configuration parameters that in general influence the scalability of a WCF solution are the InstanceContextMode and ConcurrencyMode properties of the ServiceBehavior. These parameters are configurable only within the service code, and not in XML configuration, because they relate to the runtime behavior of the service and the service developer should be aware of their values. The InstanceContextMode parameter determines how many instances of the service have to be created by the WCF runtime. The possible values are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;PerCall: a new InstanceContext object is created for each call. &lt;/li&gt;    &lt;li&gt;PerSession: a new InstanceContext object is created for each session. If the channel does not create a session this value behaves as if it were PerCall.This is the default value. &lt;/li&gt;    &lt;li&gt;Single: only one InstanceContext object is used for all incoming calls and is not recycled subsequent to the calls. If a service object does not exist, one is created. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The ConcurrencyMode property relates to the threading behavior of the service. In fact it defines how the service behaves related to multi-threaded scenarios. Here are the possible values:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Single: the service instance is single-threaded and does not accept reentrant calls. If the InstanceContextMode property is Single, and additional messages arrive while the instance services a call, these messages must wait until the service is available or until the messages time out. This is the default value. &lt;/li&gt;    &lt;li&gt;Reentrant: the service instance is single-threaded and accepts reentrant calls. The reentrant service accepts calls when you call another service; it is therefore your responsibility to leave your object state consistent before callouts and you must confirm that operation-local data is valid after callouts. Note that the service instance is unlocked only by calling another service over a WCF channel. In this case, the called service can reenter the first service via a callback. If the first service is not reentrant, the sequence of calls results in a deadlock. &lt;/li&gt;    &lt;li&gt;Multiple: the service instance is multi-threaded. No synchronization guarantees are made. Because other threads can change your service object at any time, you must handle synchronization and state consistency at all times. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;In the following table you can see the matrix of available configurations and behaviors for InstanceContextMode and ConcurrencyMode:&lt;/p&gt;  &lt;div style="overflow: auto"&gt;   &lt;table style="width: 639pt; border-collapse: collapse" cellspacing="0" cellpadding="0" width="851" border="0"&gt;&lt;colgroup&gt;&lt;col style="width: 211pt; mso-width-source: userset; mso-width-alt: 10276" width="281" /&gt;&lt;col style="width: 133pt; mso-width-source: userset; mso-width-alt: 6473" width="177" /&gt;&lt;col style="width: 151pt; mso-width-source: userset; mso-width-alt: 7350" width="201" /&gt;&lt;col style="width: 144pt; mso-width-source: userset; mso-width-alt: 7021" width="192" /&gt;&lt;/colgroup&gt;&lt;tbody&gt;       &lt;tr style="height: 15pt" height="20"&gt;         &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #4f81bd; border-left: medium none; width: 211pt; color: white; border-bottom: white 1.5pt solid; font-family: calibri; height: 15pt; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #4f81bd none" width="281" height="20"&gt;&amp;#160;&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #4f81bd; border-left: medium none; width: 133pt; color: white; border-bottom: white 1.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #4f81bd none" width="177"&gt;ConcurrencyMode.Single&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 700; font-size: 11pt; background: #4f81bd; border-left: medium none; width: 151pt; color: white; border-bottom: white 1.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #4f81bd none" width="201"&gt;ConcurrencyMode.Reentrant&lt;/td&gt;          &lt;td class="xl65" style="border-right: medium none; border-top: medium none; font-weight: 700; font-size: 11pt; background: #4f81bd; border-left: medium none; width: 144pt; color: white; border-bottom: white 1.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #4f81bd none" width="192"&gt;ConcurrencyMode.Multiple&lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 150pt" height="200"&gt;         &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 211pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; height: 150pt; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="281" height="200"&gt;&lt;strong&gt;InstanceContextMode.Single&lt;/strong&gt;&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 133pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="177"&gt;Only one service instance is created and only one thread per-time accesses that instance. Requests are handled using a FIFO approach.&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 151pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="201"&gt;Only one service instance is created and only one thread per-time accesses that instance. Requests are handled using a FIFO approach.            &lt;br /&gt;            &lt;br /&gt;The single thread can leave the service code and come back later (for instance to make a callback or something like that).&lt;/td&gt;          &lt;td class="xl65" style="border-right: medium none; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 144pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="192"&gt;Only one service instance is created and multiple threads can access that instance. Service code has to be synchronized in order to be thread safe.&lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 60pt" height="80"&gt;         &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 211pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; height: 60pt; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="281" height="80"&gt;&lt;strong&gt;InstanceContextMode.PerCall&lt;/strong&gt;&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 133pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="177"&gt;ConcurrencyMode does not matter because each call is handled by its own instance and thread&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 151pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="201"&gt;ConcurrencyMode does not matter because each call is handled by its own instance and thread&lt;/td&gt;          &lt;td class="xl65" style="border-right: medium none; border-top: medium none; font-weight: 400; font-size: 11pt; background: #dbe5f1; border-left: medium none; width: 144pt; color: black; border-bottom: white 0.5pt solid; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #dbe5f1 none" width="192"&gt;ConcurrencyMode does not matter because each call is handled by its own instance and thread&lt;/td&gt;       &lt;/tr&gt;        &lt;tr style="height: 225pt" height="300"&gt;         &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 211pt; color: black; border-bottom: medium none; font-family: calibri; height: 225pt; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="281" height="300"&gt;&lt;strong&gt;InstanceContextMode.PerSession (default)&lt;/strong&gt;&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 133pt; color: black; border-bottom: medium none; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="177"&gt;One service instance is created for each active session and only one thread for each session&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;accesses that per-session instance. Multiple concurrent requests related to the same session, and so to the same service instance, are handled using a FIFO approach.&lt;/td&gt;          &lt;td class="xl65" style="border-right: white 0.5pt solid; border-top: medium none; font-weight: 400; font-size: 11pt; background: #b8cce4; border-left: medium none; width: 151pt; color: black; border-bottom: medium none; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="201"&gt;One service instance is created for each active session and only one thread for each session&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;accesses that per-session instance. Multiple concurrent requests related to the same session, and so to the same service instance, are handled using a FIFO approach.             &lt;br /&gt;            &lt;br /&gt;The single thread can leave the service code and come back later (for instance to make a callback or something like that).&lt;/td&gt;          &lt;td class="xl65" style="font-weight: 400; font-size: 11pt; background: #b8cce4; width: 144pt; color: black; font-family: calibri; text-decoration: none; text-underline-style: none; text-line-through: none; mso-pattern: #b8cce4 none" width="192"&gt;One service instance is created for each active session and multiple threads can access that instance. Service code has to be synchronized in order to be thread safe.&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt;  &lt;p&gt;That's all. I hope you will enjoy this reference post.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6015545" width="1" height="1"&gt;</content><author><name>paolopia</name><uri>http://weblogs.asp.net/members/paolopia.aspx</uri></author></entry><entry><title>Handling custom SOAP headers via WCF Behaviors</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/paolopia/archive/2008/02/25/handling-custom-soap-headers-via-wcf-behaviors.aspx" /><id>http://weblogs.asp.net/paolopia/archive/2008/02/25/handling-custom-soap-headers-via-wcf-behaviors.aspx</id><published>2008-02-25T10:13:14Z</published><updated>2008-02-25T10:13:14Z</updated><content type="html">&lt;p&gt;A few days ago a customer of mine asked me how to define a WCF behavior to add a custom SOAP Header to sent/received messages.&lt;/p&gt; &lt;p&gt;The solution is not so far from what I've shown in the previous "&lt;a href="http://weblogs.asp.net/paolopia/archive/2007/08/23/writing-a-wcf-message-inspector.aspx"&gt;Writing a WCF Message Inspector&lt;/a&gt;" post. In fact one way of working is to define a custom message inspector that writes/reads the custom SOAP Header.&lt;/p&gt; &lt;p&gt;So first of all we need a SOAP Header. Here is the code to define a custom header to handle a random key (as a Guid) injected in every request sent from the consumer to the service:&lt;/p&gt; &lt;p&gt;&lt;font color="#008080"&gt;public class CustomHeader : MessageHeader&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private String _key; &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String Key&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (this._key);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public CustomHeader(String key)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this._key = key;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override string Name&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return (CustomHeaderNames.CustomHeaderName); }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override string Namespace&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return (CustomHeaderNames.CustomHeaderNamespace); }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/font&gt; &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected override void OnWriteHeaderContents(System.Xml.XmlDictionaryWriter writer, MessageVersion messageVersion)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Write the content of the header directly using the XmlDictionaryWriter&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.WriteElementString(CustomHeaderNames.KeyName, this.Key);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/font&gt; &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static CustomHeader ReadHeader(XmlDictionaryReader reader)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Read the header content (key) using the XmlDictionaryReader&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (reader.ReadToDescendant(CustomHeaderNames.KeyName, CustomHeaderNames.CustomHeaderNamespace))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String key = reader.ReadElementString();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (new CustomHeader(key));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;br&gt;&lt;font color="#008080"&gt;} &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;public static class CustomHeaderNames&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public const String CustomHeaderName = "CustomHeader"; &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public const String KeyName = "Key"; &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public const String CustomHeaderNamespace = "&lt;/font&gt;&lt;a href="http://schemas.devleap.com/CustomHeader&amp;quot;;"&gt;&lt;font color="#008080"&gt;http://schemas.devleap.com/CustomHeader";&lt;/font&gt;&lt;/a&gt; &lt;p&gt;&lt;font color="#008080"&gt;}&lt;/font&gt; &lt;p&gt;As you can see it is a type inheriting from &lt;em&gt;MessageHeader &lt;/em&gt;class. Notice the OnWriteHeaderContents override, which is invoked by WCF infrastructure to serialize the SOAP Header, and the ReadHeader static method that we will use later.&lt;/p&gt; &lt;p&gt;Such a SOAP Header need to be added by the consumer and read by the service. To do this we need a MessageInspector like the following one:&lt;/p&gt; &lt;p&gt;&lt;font color="#008080"&gt;public class CustomMessageInspector : IDispatchMessageInspector, IClientMessageInspector&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region Message Inspector of the Service&lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Look for my custom header in the request&lt;br&gt;&lt;/font&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Int32 headerPosition = request.Headers.FindHeader(CustomHeaderNames.CustomHeaderName, CustomHeaderNames.CustomHeaderNamespace); &lt;/font&gt;&lt;/strong&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008080"&gt;// Get an XmlDictionaryReader to read the header content&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XmlDictionaryReader reader =&lt;/font&gt;&lt;strong&gt;&lt;font color="#008080"&gt; &lt;/font&gt;&lt;font color="#ff0000"&gt;request.Headers.GetReaderAtHeader(headerPosition); &lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp; // Read it through its static method ReadHeader&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CustomHeader header = CustomHeader.ReadHeader(reader); &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Add the content of the header to the IncomingMessageProperties dictionary&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt; OperationContext.Current.IncomingMessageProperties.Add("key", header.Key); &lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void BeforeSendReply(ref Message reply, object correlationState)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region Message Inspector of the Consumer &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void AfterReceiveReply(ref Message reply, object correlationState)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public object BeforeSendRequest(ref Message request, IClientChannel channel)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Prepare the request message copy to be modified&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBuffer buffer = request.CreateBufferedCopy(Int32.MaxValue);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request = buffer.CreateMessage(); &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Simulate to have a random Key generation process&lt;br&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;&lt;strong&gt;request.Headers.Add(new CustomHeader(Guid.NewGuid().ToString())); &lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008080"&gt;&amp;nbsp; return null;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion&lt;br&gt;}&lt;/font&gt; &lt;p&gt;As you can see from the code sample above, we use the IClientMessageInspector implementation to handle the addition of the header in the consumer-side code, while we use the IDispatchMessageInspector on the service side, to extract the header. It is interesting the FindHeader method of the MessageHeaders collection, as well as the method GetReaderAtHeader, provided by the same collection of SOAP Headers. The result of this last method is an XmlDictionaryReader that we use to read our custom header content, through the ReadHeader static method we've already introduced. &lt;p&gt;The service will be able to read the Key provided throught the custom SOAP header simply querying the IncomingMessageProperties dictionary: &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;OperationContext.Current.IncomingMessageProperties["key"]&lt;/font&gt;&lt;/strong&gt; &lt;p&gt;Of course this custom MessageInspector needs to be plugged into the WCF pipeline using a custom behavior like the following one: &lt;p&gt;&lt;font color="#008080"&gt;[AttributeUsage(AttributeTargets.Class)]&lt;br&gt;public class CustomBehavior : Attribute, IEndpointBehavior&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region IEndpointBehavior Members &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void AddBindingParameters(ServiceEndpoint endpoint, System.ServiceModel.Channels.BindingParameterCollection bindingParameters)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void ApplyClientBehavior(ServiceEndpoint endpoint, System.ServiceModel.Dispatcher.ClientRuntime clientRuntime)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CustomMessageInspector inspector = new CustomMessageInspector();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; clientRuntime.MessageInspectors.Add(inspector);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void ApplyDispatchBehavior(ServiceEndpoint endpoint, System.ServiceModel.Dispatcher.EndpointDispatcher endpointDispatcher)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ChannelDispatcher channelDispatcher = endpointDispatcher.ChannelDispatcher;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (channelDispatcher != null)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (EndpointDispatcher ed in channelDispatcher.Endpoints)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CustomMessageInspector inspector = new CustomMessageInspector();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ed.DispatchRuntime.MessageInspectors.Add(inspector);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Validate(ServiceEndpoint endpoint)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion&lt;br&gt;}&lt;/font&gt; &lt;p&gt;We also need an ExtensionElement to configure the behavior:&lt;/p&gt; &lt;p&gt;&lt;font color="#008080"&gt;public class CustomBehaviorExtensionElement : BehaviorExtensionElement&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected override object CreateBehavior()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return new CustomBehavior();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override Type BehaviorType&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return typeof(CustomBehavior);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;/font&gt; &lt;p&gt;At last we can configure in the .config file of our service and consumer the behavior. Here is the service side configuration:&lt;/p&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;lt;system.serviceModel&amp;gt; &lt;/font&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;&amp;nbsp; &amp;lt;extensions&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;behaviorExtensions&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name="customBehavior" type="DevLeap.WCF.Behaviors.Extensions.CustomBehaviorExtensionElement, DevLeap.WCF.Behaviors.Extensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/behaviorExtensions&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;/extensions&amp;gt;&lt;/font&gt;&lt;/strong&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;lt;services&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;service name="DevLeap.WCF.Behaviors.Services.ServiceOne" behaviorConfiguration="serviceBehavior"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endpoint&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; address="net.tcp://localhost:35001/ServiceOne/"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; binding="netTcpBinding"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; contract="DevLeap.WCF.Behaviors.Contracts.IServiceOne"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt; &lt;/font&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;behaviorConfiguration="endpointBehavior"&lt;/font&gt; &lt;/strong&gt;/&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;/service&amp;gt;&lt;br&gt;&amp;lt;/services&amp;gt; &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;lt;behaviors&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;endpointBehaviors&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;behavior name="endpointBehavior"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#008080"&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;&amp;lt;customBehavior /&amp;gt;&lt;br&gt;&lt;/font&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/behavior&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;/endpointBehaviors&amp;gt; &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp; &amp;lt;/behaviors&amp;gt; &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;lt;/system.serviceModel&amp;gt;&lt;/font&gt;  &lt;p&gt;And here is the configuration of the consumer-side: &lt;p&gt;&lt;font color="#008080"&gt;&amp;lt;system.serviceModel&amp;gt; &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;extensions&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;behaviorExtensions&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name="customBehavior" type="DevLeap.WCF.Behaviors.Extensions.CustomBehaviorExtensionElement, DevLeap.WCF.Behaviors.Extensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/behaviorExtensions&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/extensions&amp;gt;&lt;/font&gt;&lt;/strong&gt; &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;client&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endpoint name="serviceOneEndpoint" &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; address="net.tcp://localhost:35001/ServiceOne/"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; binding="netTcpBinding"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; contract="DevLeap.WCF.Behaviors.Contracts.IServiceOne"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;&lt;font color="#ff0000"&gt;behaviorConfiguration="serviceOneBehavior" &lt;/font&gt;&lt;/strong&gt;/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/client&amp;gt; &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;behaviors&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endpointBehaviors&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;behavior name="serviceOneBehavior"&amp;gt;&lt;br&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;customBehavior /&amp;gt;&lt;br&gt;&lt;/strong&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/behavior&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/endpointBehaviors&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/behaviors&amp;gt; &lt;/font&gt; &lt;p&gt;&lt;font color="#008080"&gt;&amp;lt;/system.serviceModel&amp;gt;&lt;/font&gt; &lt;p&gt;That's all! Enjoy your custom SOAP header defining infrastructural protocols, but don't forget to check the wide range of WS-* specifications before inventing your own :-) ...&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5858753" width="1" height="1"&gt;</content><author><name>paolopia</name><uri>http://weblogs.asp.net/members/paolopia.aspx</uri></author><category term=".NET" scheme="http://weblogs.asp.net/paolopia/archive/tags/.NET/default.aspx" /><category term="WCF (Indigo)" scheme="http://weblogs.asp.net/paolopia/archive/tags/WCF+_2800_Indigo_2900_/default.aspx" /><category term="SOA" scheme="http://weblogs.asp.net/paolopia/archive/tags/SOA/default.aspx" /></entry><entry><title>WCF Security Full Demo</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/paolopia/archive/2007/12/16/wcf-security-full-demo.aspx" /><id>http://weblogs.asp.net/paolopia/archive/2007/12/16/wcf-security-full-demo.aspx</id><published>2007-12-16T15:57:55Z</published><updated>2007-12-16T15:57:55Z</updated><content type="html">&lt;p&gt;&lt;a href="http://devlab.devleap.it/PaoloPi/WebCast/DevLeap.WCF.SecurityFullDemo-15122007.zip"&gt;Here&lt;/a&gt; you can find the last version of a sample application showing many of the security features and configuration of WCF in the fields of security.&lt;br&gt;I've just updated it in order to release it during my last WebCast about &lt;a href="http://www.microsoft.com/italy/msdn/risorsemsdn/security/path/default.mspx"&gt;WCF Security for MSDN Italy&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;In this sample you can see (adding/removing endpoints and configuration elements from the config file):&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Windows Authentication and Windows Authorization via transport level security on basicHttpBinding&lt;/li&gt; &lt;li&gt;Windows Authentication and Windows Authorization via message level security on wsHttpBinding&lt;/li&gt; &lt;li&gt;UsernamePasswordToken Authentication with ASP.NET Membership and ASP.NET Role Authorization via message level security on wsHttpBinding&lt;/li&gt; &lt;li&gt;UsernamePasswordToken Authentication with custom validator via message level security on wsHttpBinding&lt;/li&gt; &lt;li&gt;Authorization using a custom Authorization Policy&lt;/li&gt; &lt;li&gt;Impersonation using Windows credentials &lt;/li&gt; &lt;li&gt;Custom impersonation of custom Principal and Identity&lt;/li&gt; &lt;li&gt;Handling of multiple identities (one Primary plus others)&lt;/li&gt; &lt;li&gt;A quick and basic sample of interoperability with ASMX consumers using a custom UsernamePasswordToken over SSL, in the respect of WS-Security and &lt;a href="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0.pdf"&gt;WSS UsernameToken Profile 1.0 by Oasis&lt;/a&gt;, without using WSE&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Enjoy and feel free to give me your &lt;a href="mailto:paolo@devleap.com"&gt;feedbacks&lt;/a&gt; or further suggestions.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5461791" width="1" height="1"&gt;</content><author><name>paolopia</name><uri>http://weblogs.asp.net/members/paolopia.aspx</uri></author><category term=".NET" scheme="http://weblogs.asp.net/paolopia/archive/tags/.NET/default.aspx" /><category term="Web Services" scheme="http://weblogs.asp.net/paolopia/archive/tags/Web+Services/default.aspx" /><category term="WSE" scheme="http://weblogs.asp.net/paolopia/archive/tags/WSE/default.aspx" /><category term="WCF (Indigo)" scheme="http://weblogs.asp.net/paolopia/archive/tags/WCF+_2800_Indigo_2900_/default.aspx" /><category term="SOA" scheme="http://weblogs.asp.net/paolopia/archive/tags/SOA/default.aspx" /></entry><entry><title>SharePoint custom authentication with Windows CardSpace</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/paolopia/archive/2007/08/30/sharepoint-custom-authentication-with-windows-cardspace.aspx" /><id>http://weblogs.asp.net/paolopia/archive/2007/08/30/sharepoint-custom-authentication-with-windows-cardspace.aspx</id><published>2007-08-30T17:28:00Z</published><updated>2007-08-30T17:28:00Z</updated><content type="html">&lt;P&gt;Today I and &lt;A class="" href="http://blogs.devleap.com/rob/" mce_href="http://blogs.devleap.com/rob/"&gt;Roberto Brunetti (Italian Blog)&lt;/A&gt;&amp;nbsp;worked on one of the speeches we're going to held at the upcoming &lt;A href="http://www.sharepointconference.it/" mce_href="http://www.sharepointconference.it/"&gt;SharePoint Conference 2007&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;The session is about &lt;A href="http://www.sharepointconference.it/sessioni.aspx#DEV401" mce_href="http://www.sharepointconference.it/sessioni.aspx#DEV401"&gt;SharePoint Custom Authentication&lt;/A&gt; and we really enjoyed playing with a &lt;A href="http://wcs.netfx3.com/" mce_href="http://wcs.netfx3.com/"&gt;CardSpace&lt;/A&gt; based authentication solution. It tooks a little bit more than half a day to make it working, but the result is really brilliant!&lt;/P&gt;
&lt;P&gt;We defined a Publishing Portal with anonymous access and Forms Based Authentication, able to map an InfoCard to the FBA idenditity managed by the configured Membership Provider. Many thanks to &lt;A href="http://www.leastprivilege.com/" mce_href="http://www.leastprivilege.com/"&gt;Dominick Baier&lt;/A&gt;&amp;nbsp;for his great &lt;A href="http://cardspace.netfx3.com/files/folders/tools-july-ctp/entry11640.aspx" mce_href="http://cardspace.netfx3.com/files/folders/tools-july-ctp/entry11640.aspx"&gt;CardSpace Control for ASP.NET&lt;/A&gt; that we referenced from our code, in order to make simpler the implementation of this solution.&lt;/P&gt;
&lt;P&gt;Here are some screenshoots:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://devlab.devleap.it/Multimedia/SharePointConference2007/MOSS-2007-PublishingPortal-HomePage.jpg" target=blank mce_href="http://devlab.devleap.it/Multimedia/SharePointConference2007/MOSS-2007-PublishingPortal-HomePage.jpg"&gt;&lt;IMG src="http://devlab.devleap.it/Multimedia/SharePointConference2007/MOSS-2007-PublishingPortal-HomePage.jpg" width=400 border=0 mce_src="http://devlab.devleap.it/Multimedia/SharePointConference2007/MOSS-2007-PublishingPortal-HomePage.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://devlab.devleap.it/Multimedia/SharePointConference2007/MOSS-2007-PublishingPortal-LoginWithCardSpace.jpg" target=blank mce_href="http://devlab.devleap.it/Multimedia/SharePointConference2007/MOSS-2007-PublishingPortal-LoginWithCardSpace.jpg"&gt;&lt;IMG src="http://devlab.devleap.it/Multimedia/SharePointConference2007/MOSS-2007-PublishingPortal-LoginWithCardSpace.jpg" width=400 border=0 mce_src="http://devlab.devleap.it/Multimedia/SharePointConference2007/MOSS-2007-PublishingPortal-LoginWithCardSpace.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://devlab.devleap.it/Multimedia/SharePointConference2007/MOSS-2007-PublishingPortal-CardSpaceSelector.jpg" target=blank mce_href="http://devlab.devleap.it/Multimedia/SharePointConference2007/MOSS-2007-PublishingPortal-CardSpaceSelector.jpg"&gt;&lt;IMG src="http://devlab.devleap.it/Multimedia/SharePointConference2007/MOSS-2007-PublishingPortal-CardSpaceSelector.jpg" width=400 border=0 mce_src="http://devlab.devleap.it/Multimedia/SharePointConference2007/MOSS-2007-PublishingPortal-CardSpaceSelector.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://devlab.devleap.it/Multimedia/SharePointConference2007/MOSS-2007-PublishingPortal-LoggedIn.jpg" target=blank mce_href="http://devlab.devleap.it/Multimedia/SharePointConference2007/MOSS-2007-PublishingPortal-LoggedIn.jpg"&gt;&lt;IMG src="http://devlab.devleap.it/Multimedia/SharePointConference2007/MOSS-2007-PublishingPortal-LoggedIn.jpg" width=400 border=0 mce_src="http://devlab.devleap.it/Multimedia/SharePointConference2007/MOSS-2007-PublishingPortal-LoggedIn.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;And a brief &lt;A href="http://devlab.devleap.it/Multimedia/SharePointConference2007/MOSS-2007-PublishingPortal-InfoCardSelector.AVI" target=blank mce_href="http://devlab.devleap.it/Multimedia/SharePointConference2007/MOSS-2007-PublishingPortal-InfoCardSelector.AVI"&gt;video&lt;/A&gt; of the result:&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=3669255" width="1" height="1"&gt;</content><author><name>paolopia</name><uri>http://weblogs.asp.net/members/paolopia.aspx</uri></author></entry><entry><title>Writing a WCF Message Inspector</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/paolopia/archive/2007/08/23/writing-a-wcf-message-inspector.aspx" /><id>http://weblogs.asp.net/paolopia/archive/2007/08/23/writing-a-wcf-message-inspector.aspx</id><published>2007-08-23T20:57:44Z</published><updated>2007-08-23T20:57:44Z</updated><content type="html">&lt;p&gt;A WCF MessageInspector is a kind of a "message filter" that we can develop on the service or on the consumer side, in order to intercept and inspect the messages coming in or going out of the service layer infrastructure.&lt;/p&gt; &lt;p&gt;In order to define a Message Inspector on the consumer side we need to implement&amp;nbsp;the &lt;em&gt;IClientMessageInspector&lt;/em&gt; interface, while on the service side we need to implement the &lt;em&gt;IDispatchMessageInspector&lt;/em&gt; interface. Here are their definitions:&lt;/p&gt;&lt;pre&gt;public interface &lt;b&gt;IClientMessageInspector&lt;/b&gt;
{
    void &lt;b&gt;AfterReceiveReply&lt;/b&gt;(ref Message reply, object correlationState);
    object &lt;b&gt;BeforeSendRequest&lt;/b&gt;(ref Message request, IClientChannel channel);
}
&lt;/pre&gt;&lt;pre&gt;public interface &lt;b&gt;IDispatchMessageInspector&lt;/b&gt;
{
    object &lt;b&gt;AfterReceiveRequest&lt;/b&gt;(ref Message request, IClientChannel channel, InstanceContext instanceContext);
    void &lt;b&gt;BeforeSendReply&lt;/b&gt;(ref Message reply, object correlationState);
}
&lt;/pre&gt;
&lt;p&gt;As you can see both these interfaces define a couple of methods that allow to access the &lt;em&gt;Message&lt;/em&gt; (&lt;em&gt;System.ServiceModel.Channels.Message&lt;/em&gt;) just before sending it, regardless it is a Request (&lt;em&gt;IClientMessageInspector&lt;/em&gt;)&amp;nbsp;or a Response (&lt;em&gt;IDispatchMessageInspector&lt;/em&gt;), and just after receiveing it, again regardless its direction.&lt;/p&gt;
&lt;p&gt;It's very important to&amp;nbsp;underline that the message provided to this methods is a "by reference" parameter, because this allows our Message Inspector implementations to change the message while it is moving along the service model pipeline. In fact the &lt;em&gt;ref Message&lt;/em&gt; parameter can be used to read the SOAP message using one of the methods of the &lt;em&gt;Message&lt;/em&gt; type (like &lt;em&gt;ToString()&lt;/em&gt;, &lt;em&gt;GetBody&amp;lt;T&amp;gt;()&lt;/em&gt;, &lt;em&gt;GetReaderAtBodyContents()&lt;/em&gt;, etc.) or can be completely changed using a new &lt;em&gt;Message &lt;/em&gt;instance, written through the writing methods of the &lt;em&gt;Message &lt;/em&gt;type (&lt;em&gt;WriteBody(...)&lt;/em&gt;, &lt;em&gt;WriteBodyContents(...)&lt;/em&gt;, &lt;em&gt;WriteMessage(...)&lt;/em&gt;, etc.).&lt;br&gt;One of the most useful methods of the &lt;em&gt;Message &lt;/em&gt;type is the CreateBufferedCopy one,&amp;nbsp;which&amp;nbsp;allows to create a &lt;em&gt;MessageBuffer &lt;/em&gt;instance that&amp;nbsp;is a buffered copy of the source message useful to XPath navigate its content. The &lt;em&gt;MessageBuffer &lt;/em&gt;type allows also to recreate a &lt;em&gt;Message &lt;/em&gt;instance from the buffer using the &lt;em&gt;CreateMessage() &lt;/em&gt;method.&lt;/p&gt;
&lt;p&gt;Here is an example of a service-side Message Inspector used to output to the Console any received and sent message:&lt;/p&gt;&lt;pre&gt;public class &lt;b&gt;ConsoleOutputMessageInspector&lt;/b&gt; : IDispatchMessageInspector
{
    public object &lt;b&gt;AfterReceiveRequest&lt;/b&gt;(ref Message request, IClientChannel channel, InstanceContext instanceContext)
    {
        MessageBuffer &lt;b&gt;buffer&lt;/b&gt; = &lt;a&gt;request&lt;/a&gt;.CreateBufferedCopy(Int32.MaxValue);
        &lt;a&gt;request&lt;/a&gt; = &lt;a&gt;buffer&lt;/a&gt;.CreateMessage();
        Console.WriteLine("Received:\n{0}", &lt;a&gt;buffer&lt;/a&gt;.CreateMessage().ToString());
        return null;
    }

    public void &lt;b&gt;BeforeSendReply&lt;/b&gt;(ref Message reply, object correlationState)
    {
        MessageBuffer &lt;b&gt;buffer&lt;/b&gt; = &lt;a&gt;reply&lt;/a&gt;.CreateBufferedCopy(Int32.MaxValue);
        &lt;a&gt;reply&lt;/a&gt; = &lt;a&gt;buffer&lt;/a&gt;.CreateMessage();
        Console.WriteLine("Sending:\n{0}", &lt;a&gt;buffer&lt;/a&gt;.CreateMessage().ToString());
    }
}
&lt;/pre&gt;
&lt;p&gt;As you can see I create&amp;nbsp;a copy of the message instance, using the &lt;em&gt;CreateBufferedCopy()&lt;/em&gt; method, and the I write it using the ToString() of the &lt;em&gt;Message &lt;/em&gt;type.&lt;/p&gt;
&lt;p&gt;Another example of Message Inspector could be the following one, used to write to the console every single SOAP Header contained in the message that moves through the message pipeline:&lt;/p&gt;&lt;pre&gt;public class &lt;b&gt;ConsoleOutputHeadersMessageInspector&lt;/b&gt; : IDispatchMessageInspector
{
    public object &lt;b&gt;AfterReceiveRequest&lt;/b&gt;(ref Message request, IClientChannel channel, InstanceContext instanceContext)
    {
        MessageBuffer &lt;b&gt;buffer&lt;/b&gt; = &lt;a&gt;request&lt;/a&gt;.CreateBufferedCopy(Int32.MaxValue);
        &lt;a&gt;request&lt;/a&gt; = &lt;a&gt;buffer&lt;/a&gt;.CreateMessage();
        Message &lt;b&gt;originalMessage&lt;/b&gt; = &lt;a&gt;buffer&lt;/a&gt;.CreateMessage();
        foreach (MessageHeader &lt;b&gt;h&lt;/b&gt; in &lt;a&gt;originalMessage&lt;/a&gt;.Headers)
        {
            Console.WriteLine("\n{0}\n", &lt;a&gt;h&lt;/a&gt;);
        }
        return null;
    }

    public void &lt;b&gt;BeforeSendReply&lt;/b&gt;(ref Message reply, object correlationState)
    {
        MessageBuffer &lt;b&gt;buffer&lt;/b&gt; = &lt;a&gt;reply&lt;/a&gt;.CreateBufferedCopy(0x7fffffff);
        &lt;a&gt;reply&lt;/a&gt; = &lt;a&gt;buffer&lt;/a&gt;.CreateMessage();
        Message &lt;b&gt;originalMessage&lt;/b&gt; = &lt;a&gt;buffer&lt;/a&gt;.CreateMessage();
        foreach (MessageHeader &lt;b&gt;h&lt;/b&gt; in &lt;a&gt;originalMessage&lt;/a&gt;.Headers)
        {
            Console.WriteLine("\n{0}\n", &lt;a&gt;h&lt;/a&gt;);
        }
    }
}
&lt;/pre&gt;
&lt;p&gt;Here I walk through each &lt;em&gt;MessageHeader &lt;/em&gt;contained within the source &lt;em&gt;Message &lt;/em&gt;browsing the &lt;em&gt;Headers &lt;/em&gt;collection. One more time I work on a buffered copy of the message.&lt;/p&gt;
&lt;p&gt;In order to configure these message inspectors we can use a custom behavior. Behaviros are classes that extend the service model defining custom extensions for: contracts, endpoints, services, operations.&amp;nbsp;In these examples I defined two different kind of behaviors: one endpoint behavior and one servicebehavior.&lt;/p&gt;
&lt;p&gt;Let's start from the EndpointBehavior:&lt;/p&gt;&lt;pre&gt;public class &lt;b&gt;ConsoleOutputBehavior&lt;/b&gt; : IEndpointBehavior
{
    public void &lt;b&gt;AddBindingParameters&lt;/b&gt;(ServiceEndpoint endpoint, BindingParameterCollection bindingParameters)
    {
    }

    public void &lt;b&gt;ApplyClientBehavior&lt;/b&gt;(ServiceEndpoint endpoint, ClientRuntime clientRuntime)
    {
        throw new Exception("Behavior not supported on the consumer side!");
    }

    public void &lt;b&gt;ApplyDispatchBehavior&lt;/b&gt;(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher)
    {
        ConsoleOutputMessageInspector &lt;b&gt;inspector&lt;/b&gt; = new ConsoleOutputMessageInspector();
        &lt;a&gt;endpointDispatcher&lt;/a&gt;.DispatchRuntime.MessageInspectors.Add(&lt;a&gt;inspector&lt;/a&gt;);
    }

    public void &lt;b&gt;Validate&lt;/b&gt;(ServiceEndpoint endpoint)
    {
    }
}
&lt;/pre&gt;
&lt;p&gt;As you can see I implement the &lt;em&gt;IEndpointBehavior &lt;/em&gt;interface, which defines three methods (&lt;em&gt;AddBindingParameter&lt;/em&gt;, &lt;em&gt;ApplyClientBehavior&lt;/em&gt;, &lt;em&gt;ApplyDispatchBehavior&lt;/em&gt;). The one I'm interested on is the &lt;em&gt;ApplyDispatchBehavior &lt;/em&gt;that relates to the service-side. This method receives a parameter of type &lt;em&gt;EndpointDispatcher&amp;nbsp;&lt;/em&gt;that allows to add custom Message Inspectors instance to the service dispatching environment. Because we're defining an Endpoint Behavior, this behavior affects a single endpoint of a service. To map the behavior to the service endpoint we can use a custom configuration element in the configuration file of the service host. Otherwise we could apply the behavior directly through the &lt;em&gt;ServiceHost &lt;/em&gt;instance. In this sample I used a custom configuration element. To do that we need a custom type describing the configuration element. It is a type inherited from &lt;em&gt;BehaviorExtensionElement&lt;/em&gt;, like the following one:&lt;/p&gt;&lt;pre&gt;public class &lt;b&gt;ConsoleOutputBehaviorExtensionElement&lt;/b&gt; : BehaviorExtensionElement
{
    protected override object &lt;b&gt;CreateBehavior&lt;/b&gt;()
    {
        return new ConsoleOutputBehavior();
    }

    public override Type &lt;b&gt;BehaviorType&lt;/b&gt;
    {
        get
        {
            return typeof(ConsoleOutputBehavior);
        }
    }
}
&lt;/pre&gt;
&lt;p&gt;The implementation of the behavior extension element is really simple, it defines just the &lt;em&gt;CreateBehavior &lt;/em&gt;method, used to create an instance of the behavior, and the &lt;em&gt;BehaviorType &lt;/em&gt;property, to return the type of the behavior it defines and creates. In reality this class can define also custom properties useful to configure the behavior. In our example we don't do that, but we could add some configuration properties, too.&lt;br&gt;The previously declared extension element can be used in the .config file of the service host application, like&amp;nbsp;in the following excerpt:&lt;/p&gt;
&lt;p&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;br&gt;&amp;lt;configuration&amp;gt; 
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;system.serviceModel&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;services&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;service name="DevLeap.WCF.MessageInspectors.Services.OrderService"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endpoint &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; behaviorConfiguration="devleapBehavior"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; address="&lt;a href="http://localhost:8000/OrderService&amp;quot;"&gt;http://localhost:8000/OrderService"&lt;/a&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; binding="wsHttpBinding" bindingConfiguration="devleapWsHttpBinding"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; contract="DevLeap.WCF.MessageInspectors.Contracts.IOrderService" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/service&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/services&amp;gt; 
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;extensions&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;behaviorExtensions&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name="consoleOutputBehavior" type="DevLeap.WCF.MessageInspectors.Extensions.ConsoleOutputBehaviorExtensionElement, DevLeap.WCF.MessageInspectors.Extensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/behaviorExtensions&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/extensions&amp;gt; &lt;/strong&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;behaviors&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endpointBehaviors&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;behavior name="devleapBehavior"&amp;gt;&lt;br&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;consoleOutputBehavior /&amp;gt;&lt;br&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/behavior&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/endpointBehaviors&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/behaviors&amp;gt; 
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bindings&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;wsHttpBinding&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;binding name="devleapWsHttpBinding"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;security mode="None" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/binding&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/wsHttpBinding&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bindings&amp;gt; 
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/system.serviceModel&amp;gt; 
&lt;p&gt;&amp;lt;/configuration&amp;gt;
&lt;p&gt;First of all we define the &lt;em&gt;behaviorExtension &lt;/em&gt;element, inside which we define the new extension, through the &lt;em&gt;add &lt;/em&gt;element. Keep in mind that we need to declare the fully qualified name of the extension element type inside the &lt;em&gt;type &lt;/em&gt;attribute.&lt;br&gt;Then we declare the new custom behavior within the behaviors section of the configuration file.&lt;/p&gt;
&lt;p&gt;While an Endpoint Behavior applies only to a single endpoint, we can also define a custom Service Behavior that applies to every single endpoint of a service. To do that we need to define a class that implements the &lt;em&gt;IServiceBehavior &lt;/em&gt;interface. Here is an example:&lt;/p&gt;&lt;pre&gt;[AttributeUsage(AttributeTargets.Class)]
public class &lt;b&gt;ConsoleHeaderOutputBehavior&lt;/b&gt; : Attribute, IServiceBehavior
{
    public void &lt;b&gt;AddBindingParameters&lt;/b&gt;(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase, Collection&amp;lt;ServiceEndpoint&amp;gt; endpoints, BindingParameterCollection bindingParameters)
    {
    }

    public void &lt;b&gt;ApplyDispatchBehavior&lt;/b&gt;(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
    {
        for (int &lt;b&gt;i&lt;/b&gt; = 0; &lt;a&gt;i&lt;/a&gt; &amp;lt; &lt;a&gt;serviceHostBase&lt;/a&gt;.ChannelDispatchers.Count; &lt;a&gt;i&lt;/a&gt;++)
        {
            ChannelDispatcher &lt;b&gt;channelDispatcher&lt;/b&gt; = &lt;a&gt;serviceHostBase&lt;/a&gt;.ChannelDispatchers[&lt;a&gt;i&lt;/a&gt;] as ChannelDispatcher;
            if (&lt;a&gt;channelDispatcher&lt;/a&gt; != null)
            {
                foreach (EndpointDispatcher &lt;b&gt;endpointDispatcher&lt;/b&gt; in &lt;a&gt;channelDispatcher&lt;/a&gt;.Endpoints)
                {
                    ConsoleOutputHeadersMessageInspector &lt;b&gt;inspector&lt;/b&gt; = new ConsoleOutputHeadersMessageInspector();
                    &lt;a&gt;endpointDispatcher&lt;/a&gt;.DispatchRuntime.MessageInspectors.Add(&lt;a&gt;inspector&lt;/a&gt;);
                }
            }
        }
    }

    public void &lt;b&gt;Validate&lt;/b&gt;(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
    {
    }
}
&lt;/pre&gt;
&lt;p&gt;The &lt;em&gt;IServiceBehavior &lt;/em&gt;interface looks like the &lt;em&gt;IEndpointBehavior&lt;/em&gt;, except the fact that it provides a different &lt;em&gt;ApplyDispatchBehavior &lt;/em&gt;method definition. In fact a Service&amp;nbsp;Behavior should apply its behavior to every single insatnce and endpoint published by the service to which it is applied. In this example I inherited the behavior class from the Attribute base class too, targeting it to class definitions. This way we can apply the behavior directly to the service definition, like shown in the following excerpt:&lt;/p&gt;
&lt;p&gt;[ConsoleHeaderOutputBehavior]&lt;br&gt;public class &lt;b&gt;OrderService&lt;/b&gt; : IOrderService&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public OrderConfirmation &lt;b&gt;InsertOrder&lt;/b&gt;(Order order)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OrderConfirmation &lt;b&gt;result&lt;/b&gt; = new OrderConfirmation();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a&gt;result&lt;/a&gt;.IdOrder = &lt;a&gt;order&lt;/a&gt;.IdOrder;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a&gt;result&lt;/a&gt;.ShipDateTime = DateTime.Now.AddDays(2);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return &lt;a&gt;result&lt;/a&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;br&gt;&lt;/p&gt;
&lt;p&gt;So far you have seen how to define custom Message Inspector and how to map it to a single endpoint, using and Endpoint Behavior, or how to map it to an entire service, using a Service Behavior. You have also seen how to declare the behaviors using a custom configuration element or a custom behavior attribute. Hope you enjoyed this article, &lt;a href="http://devlab.devleap.it/PaoloPi/WCF/DevLeap.WCF.MessageInspectors.zip"&gt;Here&lt;/a&gt; you can find the code sample used and described in this post.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=3599079" width="1" height="1"&gt;</content><author><name>paolopia</name><uri>http://weblogs.asp.net/members/paolopia.aspx</uri></author></entry><entry><title>.NET 3.5 June CTP and ADO.NET EF June CTP</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/paolopia/archive/2007/07/02/net-3-5-june-ctp-and-ado-net-ef-june-ctp.aspx" /><id>http://weblogs.asp.net/paolopia/archive/2007/07/02/net-3-5-june-ctp-and-ado-net-ef-june-ctp.aspx</id><published>2007-07-02T05:43:00Z</published><updated>2007-07-02T05:43:00Z</updated><content type="html">&lt;P&gt;Today have been published the new June CTP refresh of &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e6fd8663-8b77-4649-8d36-3830e18528fa&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e6fd8663-8b77-4649-8d36-3830e18528fa&amp;amp;displaylang=en"&gt;.NET Framework 3.5&lt;/A&gt; and &lt;A href="http://blogs.msdn.com/adonet/default.aspx" mce_href="http://blogs.msdn.com/adonet/default.aspx"&gt;ADO.NET Entity Framework&lt;/A&gt;. Many new features and changes are available in this last CTPs, in particular in the fields of &lt;A href="http://blogs.msdn.com/dsimmons/archive/2007/07/03/june-ctp-of-the-entity-framework-is-finally-out.aspx" mce_href="http://blogs.msdn.com/dsimmons/archive/2007/07/03/june-ctp-of-the-entity-framework-is-finally-out.aspx"&gt;ADO.NET EF&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=3005106" width="1" height="1"&gt;</content><author><name>paolopia</name><uri>http://weblogs.asp.net/members/paolopia.aspx</uri></author></entry><entry><title>Acropolis, CAB + WPF, PageFlow. What should I suggest to use?</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/paolopia/archive/2007/06/08/acropolis-cab-wpf-pageflow-what-should-i-suggest-to-use.aspx" /><id>http://weblogs.asp.net/paolopia/archive/2007/06/08/acropolis-cab-wpf-pageflow-what-should-i-suggest-to-use.aspx</id><published>2007-06-08T00:07:09Z</published><updated>2007-06-08T00:07:09Z</updated><content type="html">&lt;p&gt;I'm going to be confused. During the last three days we've seen:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://windowsclient.net/Acropolis/"&gt;Acropolis&lt;/a&gt;: a set of tools to make it easier to develop UI based solutions. Seems to be a good idea to make able every developer to write code as markup, regardless of what's happining under the cover. One of the annunced features is workflow support and integration, in order to drive UI through workflows. Sounds good.&lt;/li&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/mwinkle/archive/2007/06/07/introducing-the-pageflow-sample.aspx"&gt;PageFlow&lt;/a&gt;: today Matt Winkler (what a great guy!) annunced on his blog a new workflow template, called PageFlow, that allows to define workflow driven UI&amp;nbsp;solutions, able to control Windows Form, ASP.NET and WPF UI independently. Sounds good too.&lt;/li&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/ashish/archive/2007/06/07/wpf-cab-has-arrived.aspx"&gt;CAB+WPF&lt;/a&gt;: yesterday have been announced the availability of CAB + WPF, i.e. a CAB / SCSF that support WPF. It's good, but in Acropolis overview session the speaker said that Acropolis, on a long time schedule, will replace SCSF. Also&amp;nbsp;Gleen Block said the same thing &lt;a href="http://blogs.msdn.com/gblock/archive/2007/06/06/acropolis-the-future-of-smart-client.aspx"&gt;on his blog&lt;/a&gt;.&amp;nbsp;So CAB + WPF sounds good too, but how long it will be good and available?&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;To summarize we have three different solutions, somewhere overlapping, somewhere not, all coming from Microsoft, all apparently not fully supported because they're not boxed solutions, but "models" downloadable, like patterns and practices and software factories. What should I suggest to my customers to use?&lt;/p&gt; &lt;p&gt;Probably the best suggestion I can give to my customers, as I always do,&amp;nbsp;is to take inspiration from all of these solutions and to build his own one, just to be sure that it will be supported on a long time schedule. On the other side it would be great to have a unique and affordable direction from Microsoft.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=2758336" width="1" height="1"&gt;</content><author><name>paolopia</name><uri>http://weblogs.asp.net/members/paolopia.aspx</uri></author></entry><entry><title>What's going on with C#, XAML and .NET: we can see just the top of the aisberg ... I'd like to touch the whole future that's coming</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/paolopia/archive/2007/06/06/what-s-going-on-with-c-xaml-and-net-we-can-see-just-the-top-of-the-aisberg-i-d-like-to-touch-the-whole-future-that-s-coming.aspx" /><id>http://weblogs.asp.net/paolopia/archive/2007/06/06/what-s-going-on-with-c-xaml-and-net-we-can-see-just-the-top-of-the-aisberg-i-d-like-to-touch-the-whole-future-that-s-coming.aspx</id><published>2007-06-06T19:36:10Z</published><updated>2007-06-06T19:36:10Z</updated><content type="html">&lt;p&gt;Today, like many other TechEd attendee, I attended the session of Chris Anderson. It was a very effective presentation, about how to leverage XAML markup serialization to represent code with markup. The idea is obviously smart, above all because you can imagine a software written in markup and compiled and executed on a case by case basis, using WPF, SilverLight, whatever ... depending on the client environment, but with always the same XAML code under the cover.&lt;/p&gt; &lt;p&gt;By the way I think this is not the only positive side effect of markup programming (let me call it this way). The real power of this new technique of programming is that you can concentrate on what you want (write message, save customer, load report, sell product, etc.) and you don't need to focus on how to achieve your result. This means not only declarative programming, but also multi-platform support and above all parallel programming, transparent to the developer. WF programming represents a first step toward this goal.&lt;/p&gt; &lt;p&gt;I guess what we've seen today was just a drop in the sea of what's going on ... I'd like to see more ... :-)&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=2744828" width="1" height="1"&gt;</content><author><name>paolopia</name><uri>http://weblogs.asp.net/members/paolopia.aspx</uri></author></entry><entry><title>WF hosting in BizTalk 2006? Sure!</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/paolopia/archive/2007/06/06/wf-hosting-in-biztalk-2006-sure.aspx" /><id>http://weblogs.asp.net/paolopia/archive/2007/06/06/wf-hosting-in-biztalk-2006-sure.aspx</id><published>2007-06-05T23:37:41Z</published><updated>2007-06-05T23:37:41Z</updated><content type="html">&lt;p&gt;Today was announced at TechEd 2007 the availability of a new tool to host WF workflows into BizTalk Server 2006. Sounds a good idea and confirms, like in this &lt;a href="http://blogs.msdn.com/pandrew/archive/2007/06/04/biztalk-adapter-for-windows-workflow-foundation-sample-june-2007-ctp.aspx"&gt;post&lt;/a&gt; of Paul Andrew, that WF will have a main role in future releases of BizTalk Server.&lt;/p&gt; &lt;p&gt;Many times, when I teach WF, people ask me what about BizTalk overlapping. I always answer that BizTalk Server is an application server to orchestrate messaging solutions, while WF is a base framework to build your own workflow solutions, but I also admit that a WF based BizTalk could be a good solutions to have a "zero-implementation-cost" hosting solution for real and scalable workflows defined with WF.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=2735923" width="1" height="1"&gt;</content><author><name>paolopia</name><uri>http://weblogs.asp.net/members/paolopia.aspx</uri></author></entry><entry><title>ADO.NET Synchronization Services</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/paolopia/archive/2007/06/05/ado-net-synchronization-services.aspx" /><id>http://weblogs.asp.net/paolopia/archive/2007/06/05/ado-net-synchronization-services.aspx</id><published>2007-06-05T15:06:26Z</published><updated>2007-06-05T15:06:26Z</updated><content type="html">&lt;p&gt;I've just attended a session about Smart Client development with Visual Studio Orcas. One of the most interesting new features are &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=75fef59f-1b5e-49bc-a21a-9ef4f34de6fc&amp;amp;DisplayLang=en"&gt;Synchronization Services&lt;/a&gt;, because you can leverage SQL Server Compact Edition 3.5, to manage offline data cache, with automatic synchronization with a backend SQL Server. Sounds a good idea, by the way I'm wondering if there's a way to enpower this infrastructura with entities rather than with DataSet and typed DataSet.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=2733107" width="1" height="1"&gt;</content><author><name>paolopia</name><uri>http://weblogs.asp.net/members/paolopia.aspx</uri></author></entry></feed>