<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Coding to the Bar</title><link>http://conduction.com/blogs/brian/</link><description /><managingEditor>Brian</managingEditor><dc:language>en-US</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>Brian</dc:creator><title>New Facebook App</title><link>http://conduction.com/blogs/brian/archive/2007/10/07/935.aspx</link><pubDate>Sun, 07 Oct 2007 18:51:00 GMT</pubDate><guid>http://conduction.com/blogs/brian/archive/2007/10/07/935.aspx</guid><wfw:comment>http://conduction.com/blogs/brian/comments/935.aspx</wfw:comment><comments>http://conduction.com/blogs/brian/archive/2007/10/07/935.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://conduction.com/blogs/brian/comments/commentRss/935.aspx</wfw:commentRss><trackback:ping>http://conduction.com/blogs/brian/services/trackbacks/935.aspx</trackback:ping><description>&lt;DIV style="PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; WIDTH: 100%; PADDING-TOP: 4px; BACKGROUND-COLOR: white"&gt;
&lt;DIV style="WIDTH: 28em; POSITION: relative"&gt;&lt;IMG alt="" src="http://apps.conduction.com/fbrestodev/images/robanner.jpg"&gt; 
&lt;P class=description&gt;Don't get us wrong, we love &lt;A href="http://www.facebook.com/"&gt;Facebook&lt;/A&gt;. But sometimes our friends just don't know how to use it as responsibly as they should. In these unfortunate situations they need a designated friend like you to help confront them with their Facebook abuse issues. The good news is that we've created an app just for this purpose - &lt;A href="http://apps.facebook.com/fbresto"&gt;Restraining Order&lt;/A&gt;!&lt;BR&gt;&lt;BR&gt;&lt;B&gt;How do you use Restraining Order?&lt;/B&gt;&lt;BR&gt;It's easy, really. Just fill in all the information (friend's name, what you're ordering them to stop doing, describe the infraction, select a duration for your restraining order, and then select a reason why you're doing this), and a notification will be sent to your friend.&lt;BR&gt;&lt;BR&gt;If they choose to accept installing the &lt;A href="http://apps.facebook.com/fbresto"&gt;Restraining Order app&lt;/A&gt;, the Restraining Order will be displayed on their facebook profile page until it has expired. If they choose not to install the Restraining Order app, they will still receive a notification outlining the terms of your Restraining Order. Your Restraining Order will also be published in your news feed and mini-feed.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;If I install this app, what will my friends see on my page?&lt;/B&gt;&lt;BR&gt;They'll see the Restraining Orders you have issued along with Restraining Orders you have received from others (sorry, but hey, if you give it you've got to be able to to take it).&lt;BR&gt;&lt;BR&gt;&lt;B&gt;What should I write in the bulletin board? &lt;/B&gt;&lt;BR&gt;Let us know if you're running into any problems or have suggestions. Or if you've put together a classic Restraining Order for one of your pals, why not share it here! &lt;BR&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;img src ="http://conduction.com/blogs/brian/aggbug/935.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Brian</dc:creator><title>Joost first impressions.</title><link>http://conduction.com/blogs/brian/archive/2007/04/08/930.aspx</link><pubDate>Sun, 08 Apr 2007 00:47:00 GMT</pubDate><guid>http://conduction.com/blogs/brian/archive/2007/04/08/930.aspx</guid><wfw:comment>http://conduction.com/blogs/brian/comments/930.aspx</wfw:comment><comments>http://conduction.com/blogs/brian/archive/2007/04/08/930.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://conduction.com/blogs/brian/comments/commentRss/930.aspx</wfw:commentRss><trackback:ping>http://conduction.com/blogs/brian/services/trackbacks/930.aspx</trackback:ping><description>&lt;P&gt;I made it into the beta finally, and I've been having a lot of fun playing with it.&amp;nbsp; Overall I like it a lot.&lt;/P&gt;
&lt;P&gt;The good:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;The user interface:&lt;/STRONG&gt; The UI is&amp;nbsp;extremely easy to learn and efficient to use.&amp;nbsp; It's not windows standard, but I wouldn't expect a cross platform application to conform to Windows UI conventions, and the transparent menus are a nice touch.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;The video quality:&lt;/STRONG&gt; This definitely exceeded my initial expectation.&amp;nbsp; It's not 1080p of course, but for streaming internet video it's great. &lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Reasonable CPU load:&lt;/STRONG&gt;&amp;nbsp; On my 2ghz Athlon XP system running Joost puts about a 22% load on my processors.&amp;nbsp; For comparison, Yahoo Go TV puts around 12 to 15%.&amp;nbsp; For beta software that uses a CPU intensive codec (the CoreAVC codec that Joost uses doesn't take advantage of DirectX Video Acceleration (DXVA) hardware)&amp;nbsp;that's pretty impressive.&amp;nbsp; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The bad:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Limited content:&lt;/STRONG&gt;&amp;nbsp; This is to be expected in an invite-only beta, and hopefully it will get better.&amp;nbsp; Joost has already signed a content deal with Viacom, which is a good sign.&amp;nbsp; If they can manage to get the regular viacom, discovery communications and food network programming then I can cancel my cable subscription ;).&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Random Commercial Breaks:&lt;/STRONG&gt; Commercials are interspersed throughout the content, interviews are interrupted in mid-sentence, music videos in mid-grimace, etc.&amp;nbsp; Hopefully one of the Joost guys can come up with an algorithm to look for periods of silence and/or video stillness and insert the commercial breaks there.&amp;nbsp; Otherwise, it's a pretty annoying flaw.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Video playback failure:&lt;/STRONG&gt; Joost has yet to crash on me, but I haven't gone ten minutes without video playback stopping with an error message telling me that the show can't be shown to me right now and to try again later.&amp;nbsp; Strangely, all I have to do to restart the video is select it again from the menu and fast forward to where I left off.&amp;nbsp; It's a beta.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Full screen mode switch glitch:&lt;/STRONG&gt; I haven't reproduced this one yet, but after playing with my monitor resolution, the next time I loaded Joost and switched to window mode the window wasn't visible, even though the resolution was just slightly smaller than the one I'd used before.&amp;nbsp; When I right clicked the taskbar icon and &amp;#8220;maximized&amp;#8220; the window, it reappeared. It's a beta.&amp;nbsp; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Overall I'm really impressed.&amp;nbsp; I'm hearing great things about the media center features in Vista, and Bittorrent now has lots of legal content, but the price point of Joost (i.e. free) gives it cable killing potential that the others lack (for now).&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://conduction.com/blogs/brian/aggbug/930.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Brian</dc:creator><title>Yahoo Music Engine tip</title><link>http://conduction.com/blogs/brian/archive/2007/04/08/929.aspx</link><pubDate>Sun, 08 Apr 2007 00:08:00 GMT</pubDate><guid>http://conduction.com/blogs/brian/archive/2007/04/08/929.aspx</guid><wfw:comment>http://conduction.com/blogs/brian/comments/929.aspx</wfw:comment><comments>http://conduction.com/blogs/brian/archive/2007/04/08/929.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://conduction.com/blogs/brian/comments/commentRss/929.aspx</wfw:commentRss><trackback:ping>http://conduction.com/blogs/brian/services/trackbacks/929.aspx</trackback:ping><description>&lt;P&gt;In general the new HTPC is working well, but I was having problems with Launchcast audio streams stopping suddenly with the error &amp;#8220;While Stopping, Network Timeout.&amp;#8220; Since I didn't find much information on this problem I thought I'd mention my apparent solution, which was to disable the ActiveArmor firewall that came with the NVidia nForce chipset software.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Because the problem was intermittant I'm not 100% sure that this was is the fix, but I'm going on 6 hours now with no TCP problems whatsoever.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Good luck!&lt;/P&gt;&lt;img src ="http://conduction.com/blogs/brian/aggbug/929.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Brian</dc:creator><title>Catching Up: Final version of bro-in-law's video</title><link>http://conduction.com/blogs/brian/archive/2007/03/31/928.aspx</link><pubDate>Sat, 31 Mar 2007 16:50:00 GMT</pubDate><guid>http://conduction.com/blogs/brian/archive/2007/03/31/928.aspx</guid><wfw:comment>http://conduction.com/blogs/brian/comments/928.aspx</wfw:comment><comments>http://conduction.com/blogs/brian/archive/2007/03/31/928.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://conduction.com/blogs/brian/comments/commentRss/928.aspx</wfw:commentRss><trackback:ping>http://conduction.com/blogs/brian/services/trackbacks/928.aspx</trackback:ping><description>My brother-in-law Mike Wesch posted the final version of his web 2.0 video on March 8th, not sure how I missed it.&amp;nbsp; If you haven't seen it already, check it out: &lt;A href="http://youtube.com/watch?v=NLlGopyXT_g"&gt;The Machine is Us/ing Us&lt;/A&gt;.&amp;nbsp; The original version has over 2 million hits, which is amazingly popular for&amp;nbsp;a video that lacks both stupid human tricks and boobies. &lt;img src ="http://conduction.com/blogs/brian/aggbug/928.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Brian</dc:creator><title>Asus EZ-Flash getting easier (M2NPV-VM motherboard)</title><link>http://conduction.com/blogs/brian/archive/2007/03/31/927.aspx</link><pubDate>Sat, 31 Mar 2007 15:14:00 GMT</pubDate><guid>http://conduction.com/blogs/brian/archive/2007/03/31/927.aspx</guid><wfw:comment>http://conduction.com/blogs/brian/comments/927.aspx</wfw:comment><comments>http://conduction.com/blogs/brian/archive/2007/03/31/927.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://conduction.com/blogs/brian/comments/commentRss/927.aspx</wfw:commentRss><trackback:ping>http://conduction.com/blogs/brian/services/trackbacks/927.aspx</trackback:ping><description>&lt;P&gt;Last night I finally got around to putting together a combination home theater PC/Dev machine.&amp;nbsp; I'd ordered the parts weeks ago but I'd ran into power supply problems (the Forton Zen power supply that I'd that I'd ordered was either incompatible with my equipment or it was faulty, I've yet to determine which because Fortron tech support hasn't responded to my support request).&amp;nbsp; &lt;/P&gt;
&lt;P&gt;After plugging in the new PSU last night I started to install Windows just to exercise the hardware and make sure everything was okay.&amp;nbsp; It wasn't, the memory was acting flaky, and&amp;nbsp;I needed to flash the BIOS to fix it.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;I generally dread this process because over the years it's gotten more difficult.&amp;nbsp; Back in the DOS/Windows9x days, making a bootable floppy was easy enough.&amp;nbsp; But it doesn't make sense to keep floppies around anymore just to flash a BIOS, and making a bootable CD is a&amp;nbsp;hassle&amp;nbsp;when you don't do it often.&amp;nbsp; EZ-Flash got rid of the bootable disk problem by allowing you to&amp;nbsp;access CDs from the BIOS, but you still had to burn a CD and&amp;nbsp;burners are notoriously unreliable and what do you do if you don't have one?&amp;nbsp; &lt;/P&gt;
&lt;P&gt;I do have one, but for whatever reason it wasn't working, so on a lark I put the BIOS file on a USB key and plugged it into the motherboard and&amp;nbsp;checked, sure enough, EZ-Flash now recognizes USB drives.&amp;nbsp; Updating was a snap and the DDR2-800 DIMMs work great now.&amp;nbsp;&amp;nbsp; Flashing a&amp;nbsp;BIOS is once again an easy process, no matter what OS you use.&amp;nbsp; Yay!&lt;/P&gt;
&lt;P&gt;So does anyone out there know when this was implemented?&amp;nbsp; Via Google I&amp;nbsp;see people who are still using the bootable USB drive trick in 2006 so I think it's a recent invention but since I don't upgrade machines often I'm not really sure.&amp;nbsp; Do other motherboard manufacturers do this now?&amp;nbsp; I definitely want this feature on all my future machines, so if you happen to&amp;nbsp;know please let me know in the comments or e-mail. &lt;/P&gt;&lt;img src ="http://conduction.com/blogs/brian/aggbug/927.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Brian</dc:creator><title>Dave Barry on Windows Genuine Advantage</title><link>http://conduction.com/blogs/brian/archive/2007/03/23/926.aspx</link><pubDate>Fri, 23 Mar 2007 13:25:00 GMT</pubDate><guid>http://conduction.com/blogs/brian/archive/2007/03/23/926.aspx</guid><wfw:comment>http://conduction.com/blogs/brian/comments/926.aspx</wfw:comment><comments>http://conduction.com/blogs/brian/archive/2007/03/23/926.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://conduction.com/blogs/brian/comments/commentRss/926.aspx</wfw:commentRss><trackback:ping>http://conduction.com/blogs/brian/services/trackbacks/926.aspx</trackback:ping><description>&lt;P&gt;From Dave Barry's lips to BillG's ears...&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;A href="http://blogs.herald.com/dave_barrys_blog/2007/03/why_people_hate.html"&gt;Do you find that as annoying as I do?&lt;/A&gt; I mean, if you have legal, paid-for software -- which I do -- it's annoying to have this company, several years after you bought their software, trying to install a program&amp;nbsp; on &lt;EM&gt;your&lt;/EM&gt; hard drive to check up on you. And if you &lt;EM&gt;didn't&lt;/EM&gt; have legal software, why would you install this? Or am I missing something?&lt;/BLOCKQUOTE&gt;&lt;img src ="http://conduction.com/blogs/brian/aggbug/926.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Brian</dc:creator><title>Random Thought</title><link>http://conduction.com/blogs/brian/archive/2007/01/26/925.aspx</link><pubDate>Fri, 26 Jan 2007 12:20:00 GMT</pubDate><guid>http://conduction.com/blogs/brian/archive/2007/01/26/925.aspx</guid><wfw:comment>http://conduction.com/blogs/brian/comments/925.aspx</wfw:comment><comments>http://conduction.com/blogs/brian/archive/2007/01/26/925.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://conduction.com/blogs/brian/comments/commentRss/925.aspx</wfw:commentRss><trackback:ping>http://conduction.com/blogs/brian/services/trackbacks/925.aspx</trackback:ping><description>Web 2.0 = Narcissism + HTML&lt;img src ="http://conduction.com/blogs/brian/aggbug/925.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Brian</dc:creator><title>.NET 2.0 Remoting ensureSecurity flag tests...</title><link>http://conduction.com/blogs/brian/archive/2006/05/29/623.aspx</link><pubDate>Mon, 29 May 2006 14:49:00 GMT</pubDate><guid>http://conduction.com/blogs/brian/archive/2006/05/29/623.aspx</guid><wfw:comment>http://conduction.com/blogs/brian/comments/623.aspx</wfw:comment><comments>http://conduction.com/blogs/brian/archive/2006/05/29/623.aspx#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://conduction.com/blogs/brian/comments/commentRss/623.aspx</wfw:commentRss><trackback:ping>http://conduction.com/blogs/brian/services/trackbacks/623.aspx</trackback:ping><description>&lt;P&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;In researching .NET Remoting I found a lot of contradictory information on the purpose of the new ensureSecurity flag.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;FONT size=2&gt;The MSDN Entry for RemotingConfiguration.Configure (the method I need to use in my code) seems to indicate that it is necessary to set it to true to enable security.&lt;/FONT&gt;&lt;B&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/B&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/ms223161.aspx"&gt;ensureSecurity&lt;/A&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt; 
&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;true&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt; to enable security; otherwise, &lt;B&gt;false&lt;/B&gt;. 
&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT size=2&gt;However the entry for ChannelServices.RegisterChannel indicates that it behaves the way you&amp;#8217;d expect something named &amp;#8220;ensureSecurity&amp;#8221; to behave, it makes sure the channel is encrypted, but setting it to false still allows the channel to be encrypted.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/ms223155.aspx"&gt;ensureSecurity&lt;/A&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt; 
&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;true&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt; ensures that security is enabled; otherwise &lt;B&gt;false&lt;/B&gt;. Setting the value to &lt;B&gt;false&lt;/B&gt; will not nullify the security setting done on the TCP or IPC channel. For details, see Remarks. 
&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Still confused, I checked the forums.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;A typical exchange went like &lt;/FONT&gt;&lt;A href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=403575&amp;amp;SiteID=1"&gt;&lt;FONT size=2&gt;this one between MSDN poster JockularJoe and Microsoft SDE Sowmy Srinivasan&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;:&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;JocularJoe&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;The old .NET 1.1 Configure method is marked as obsolete, and recommends using&amp;nbsp;a new override with a parameter ensureSecurity.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;The MSDN documentation on the ensureSecurity parameter is a bit laconic: "true to enable security; otherwise, false." 
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;I want to maintain backwards compatibility, i.e. don't want to require security.&amp;nbsp; But I may want to use the new security features at some time in the future.&amp;nbsp; What should I set this parameter to?&amp;nbsp; I'm a bit confused that the decision whether to use the new security features is hardwired into the code via this parameter rather than being defined in the configuration file.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;Sowmy Srinivasan&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;ensureSecurity must enable security if set to true. When set to false it should behave the 1.1 way&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;I hope this helps&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Other posts contained a variety of opinions.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;So I decided to figure this out empirically.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;I wrote a windows service that exposed a class as a Wellknown service in single call mode, installed it on my server, wrote a quick client to connect to it and fired up Ethereal to watch the traffic between the two.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;To save you some time I&amp;#8217;ll post my conclusion first: &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;&lt;EM&gt;The ensureSecurity flag is equivalent to permanently setting &amp;#8220;secure=true&amp;#8221;.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;SSPI encrypted communications is still possible with ensureSecurity set to false.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;When true, remoting only ignores the &amp;#8220;secure&amp;#8221; attribute of the channel element in the config file. It still uses the other attributes like impersonate on the server and tokenImpersonationLevel, domain, username and password on the client. &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;/EM&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;EM&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;/EM&gt;&lt;SPAN&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Before I get into the results, let me define a few terms for you:&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;FONT size=2&gt;&lt;B&gt;&lt;SPAN&gt;ensureSecurity:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt; A Boolean flag on the RemotingConfiguration.Configure method. Setting this flag requires all remoting connections to use security, regardless of the value of secure attribute in the app.config file.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;FONT size=2&gt;&lt;B&gt;&lt;SPAN&gt;secure:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt; A Boolean attribute in the /configuration/system.runtime.remoting/application/channels/channel element of the app.config file for both the client and server.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;When ensureSecurity is true, this flag is ignored, otherwise, when security is true, encryption is enforced and impersonation is allowed, otherwise plaintext anonymous communication is used.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Note that even when impersonation is turned off on the server, the user&amp;#8217;s identity still flows to the server, it just isn&amp;#8217;t impersonated.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;You can still authenticate the user and check their role membership.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;FONT size=2&gt;&lt;B&gt;&lt;SPAN&gt;impersonate:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt; A Boolean attribute in the /configuration/system.runtime.remoting/application/channels/channel element of the app.config file for the server.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;When true, the process automatically impersonates the calling user.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;When security=false, setting this to true will cause an exception.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;FONT size=2&gt;&lt;B&gt;&lt;SPAN&gt;tokenImpersonationLevel:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt; An enumerated attribute in the /configuration/system.runtime.remoting/application/channels/channel element of the app.config file for the client. &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;This setting controls the level of impersonation the server is allowed to perform with your identity. &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Valid values are Identification, Impersonation and Delegation.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;When security=false, setting this to true will cause an exception.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;When connecting to a server set to impersonate, valid values are Impersonation and Delegation.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;FONT size=2&gt;&lt;B&gt;&lt;SPAN&gt;protectionLevel:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt; An enumerated attribute in the /configuration/system.runtime.remoting/application/channels/channel element of the app.config file for the client.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;This setting controls the type of encryption to be used.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;All of the documentation I&amp;#8217;ve read recommends setting it to EncryptAndSign I did not test to see if this attribute is used when ensureSecurity is true, mainly because I don&amp;#8217;t understand the inner workings of NTLM/Kerberos security well enough to know what I&amp;#8217;m looking at in Ethereal.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;FONT size=2&gt;&lt;B&gt;&lt;SPAN&gt;domain/username/password:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt; Self explanatory.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;These attributes can be set on the channel element of the client to override the default identity.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Now, for the Ethereal results:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Test 1 (baseline plaintext configuration) 
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;
&lt;P&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;&lt;EM&gt;Server&lt;/EM&gt; ensureEncryption = false secure = false&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;&lt;EM&gt;Client&lt;/EM&gt; ensureEncryption = false secure = false &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Client to Server Packet 1 (&lt;SPAN&gt;plaintext URL&lt;/SPAN&gt;)&lt;/LI&gt;
&lt;LI&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Client to Server Packet 2 (&lt;SPAN&gt;plaintext Wellknown Service Object Info&lt;/SPAN&gt;)&lt;/LI&gt;
&lt;LI&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Server to Client Packet 1 (&lt;SPAN&gt;plaintext unknown&lt;/SPAN&gt;)&lt;/LI&gt;
&lt;LI&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Server to Client Packet 2 (&lt;SPAN&gt;plaintext response&lt;/SPAN&gt;)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Result: Success with plaintext traffic, WindowsIdentity=Service Account&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Test 2 (incompatible client/server security configuration)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;
&lt;P&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;&lt;EM&gt;Server&lt;/EM&gt; ensureEncryption =false secure=true impersonate=false &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;&lt;EM&gt;Client&lt;/EM&gt; ensureEncryption =false secure=false &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Client to Server Packet 1 (&lt;SPAN&gt;plaintext URL&lt;/SPAN&gt;)&lt;/LI&gt;
&lt;LI&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Client to Server Packet 2 (&lt;SPAN&gt;plaintext Wellknown Service Object Info&lt;/SPAN&gt;)&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Result: Failure, No response from server (other than ACK)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Test 3 (encryption turned on in config file only, with no impersonation)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;
&lt;P&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;&lt;EM&gt;Server&lt;/EM&gt; ensureEncryption = false secure = true impersonate = false &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;&lt;EM&gt;Client&lt;/EM&gt; ensureEncryption = false secure = true tokenImpersonationLevel = "Impersonation" protectionLevel = "EncryptAndSign"&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Client to Server Packet 1 (&lt;SPAN&gt;jibberjabber&lt;/SPAN&gt;)&lt;/LI&gt;
&lt;LI&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Client to Server Packet 2 (&lt;SPAN&gt;NTLMSSP&lt;/SPAN&gt;)&lt;/LI&gt;
&lt;LI&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Server to Client 1 (&lt;SPAN&gt;jibberjabber&lt;/SPAN&gt;)&lt;/LI&gt;
&lt;LI&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Server to Client 2 (&lt;SPAN&gt;NTLMSSP&lt;/SPAN&gt;)&lt;/LI&gt;
&lt;LI&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Client to Server 3&lt;SPAN&gt; (jibberjabber)&lt;/LI&gt;
&lt;LI&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Client to Server 4 &lt;SPAN&gt;(NTLMSSP response with client identity data) &lt;/LI&gt;
&lt;LI&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Server to Client 3 &amp;amp; 4&lt;SPAN&gt; (jibberjabber)&lt;/LI&gt;
&lt;LI&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Client to Server 5 &amp;amp; 6&lt;SPAN&gt; (jibberjabber)&lt;/LI&gt;
&lt;LI&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Server to Client 5 &amp;amp; 6&lt;SPAN&gt; (jibberjabber)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Result: Success with encrypted traffic, users identity is sent across the wire and is available through the Thread&amp;#8217;s CurrentPrincipal, but it is not automatically impersonated.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;WindowsIdentity=Service Account. &lt;SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Test 4 (encryption turned on using ensureEncryption flag only, with no impersonation)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;
&lt;P&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;&lt;EM&gt;Server&lt;/EM&gt; ensureEncryption = true secure = false &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;&lt;EM&gt;Client&lt;/EM&gt; ensureEncryption = true secure = false &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Result: Same as Test 3&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Test 5 (encryption turned on both with flag and config file, with impersonation)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;
&lt;P&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;&lt;EM&gt;Server&lt;/EM&gt; ensure=true secure=true impersonate=true &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;&lt;EM&gt;Client&lt;/EM&gt; ensure=true secure=true tokenImpersonationLevel="Impersonation"&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;Result: Same as Tests 3 and 4 except that the server impersonated the client&amp;#8217;s identity.&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/SPAN&gt;&lt;/B&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;Test 6 (Test 5 but with client&amp;#8217;s identity specified using domain/username/password attributes) 
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;
&lt;P&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;&lt;EM&gt;Server&lt;/EM&gt; ensure=true secure=true impersonate=true &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT size=2&gt;&lt;EM&gt;Client&lt;/EM&gt; ensure=true secure=true tokenImpersonationLevel="Impersonation" domain=&amp;#8221;domainname&amp;#8221; username=&amp;#8221;username&amp;#8221; password=&amp;#8221;password&amp;#8221;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;Result: Same as Tests 3 through 5, except that the client&amp;#8217;s identity was as specified. &lt;/STRONG&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;FONT size=2&gt;So there you go.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;I hope this gets a high enough page rank that it can reduce the confusion out there about secure remoting in .NET 2.0 because it's a really useful feature.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;/P&gt;&lt;img src ="http://conduction.com/blogs/brian/aggbug/623.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Brian</dc:creator><title>.NET Tip: InnerExceptions hold the detail...</title><link>http://conduction.com/blogs/brian/archive/2006/05/28/618.aspx</link><pubDate>Sun, 28 May 2006 17:10:00 GMT</pubDate><guid>http://conduction.com/blogs/brian/archive/2006/05/28/618.aspx</guid><wfw:comment>http://conduction.com/blogs/brian/comments/618.aspx</wfw:comment><comments>http://conduction.com/blogs/brian/archive/2006/05/28/618.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://conduction.com/blogs/brian/comments/commentRss/618.aspx</wfw:commentRss><trackback:ping>http://conduction.com/blogs/brian/services/trackbacks/618.aspx</trackback:ping><description>&lt;P&gt;In researching .NET Remoting today I came across a forum conversation about a common app.config error.&amp;nbsp; In his response &lt;A href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=115796&amp;amp;SiteID=1"&gt;Michael Taylor &lt;/A&gt;&lt;STRONG&gt;&lt;A href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=115796&amp;amp;SiteID=1"&gt;writes&lt;/A&gt;:&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;...One of the changes that MS made in .NET 2.0 was to change the config file readers to support new features.&amp;nbsp; Inadvertently they also changed the normally useful error messages to generic, meaningless messages.&amp;nbsp; This was one of the those messages.&amp;nbsp; It was listed as a suggestion to revert to the original, more meaningful messages and MS fixed the general configuration errors that would cause such messages but it is possible they missed some.&amp;nbsp; I would verify that your config file is valid.&amp;nbsp; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Unlike many previous Microsoft code libraries (does anyone else start twitching when someone mentions Commerce Server 2000?), the .NET Framework's exception handler&amp;nbsp;is pretty good about giving you the details of what went wrong. &lt;/P&gt;
&lt;P&gt;For example, I once spent an hour debugging an XML problem that had a similarly cryptic error message which I no longer remember.&amp;nbsp; I finally thought to check the InnerException property of the exception and sure enough there was the detailed exception from the StreamReader telling me that I was an idiot.&amp;nbsp; I'd forgotten to reset the position on a MemoryStream before reading it.&amp;nbsp; It was late in the day ;-).&lt;/P&gt;
&lt;P&gt;Since the root cause of my exception was different than the one mentioned above, I can't say how detailed the exception really was.&amp;nbsp; However, today I encounted the &amp;#8220;Configuration system failed to initialize&amp;#8220; exception Michael mentions, and while the primary exception was generic, the inner exception told me exactly what was wrong (I'd cut and pasted a new app.config together and had left out part of the element hierarchy).&lt;/P&gt;
&lt;P&gt;In addition to remembering to check the inner exception while debugging, it's a good idea to log them. Especially if you're writing code that has a lot of catch-all exception handlers.&amp;nbsp; A couple of short recursive functions make it easy enough:&lt;/P&gt;&lt;PRE&gt;private static string GetExceptionMessages(Exception e)
{
    System.IO.StringWriter sw = new StringWriter();
    System.CodeDom.Compiler.IndentedTextWriter tw = 
        new System.CodeDom.Compiler.IndentedTextWriter(sw);
    GetExceptionMessages(tw, e);
    return sw.ToString();
}
private static void GetExceptionMessages(System.CodeDom.Compiler.IndentedTextWriter tw, 
                        Exception e)
{
    if (e.InnerException != null)
    {
        tw.WriteLine(e.Message);
        tw.WriteLine();
        tw.Indent++;
        GetExceptionMessages(tw, e.InnerException);
    }
    else
    {
        tw.WriteLine(e.Message);
    }
}
&lt;/PRE&gt;
&lt;P&gt;Here I'm using the IndentedTextWriter from the System.CodeDom namespace,&amp;nbsp;but you could always roll your own indented textwriter or just add a function to emit x # of tabs.&amp;nbsp; Whatever works for you. &lt;/P&gt;
&lt;P&gt;Just for grins, I added the code above and recreated the error condition, here's the log output:&lt;/P&gt;&lt;PRE&gt;
Configuration system failed to initialize
    Unrecognized configuration section application.
    (C:\Code\FeedManager\bin\Debug\FeedManagerClient.vshost.exe.config line 4)
&lt;/PRE&gt;&lt;img src ="http://conduction.com/blogs/brian/aggbug/618.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Brian</dc:creator><title>New (to me) blog</title><link>http://conduction.com/blogs/brian/archive/2006/03/16/489.aspx</link><pubDate>Thu, 16 Mar 2006 15:44:00 GMT</pubDate><guid>http://conduction.com/blogs/brian/archive/2006/03/16/489.aspx</guid><wfw:comment>http://conduction.com/blogs/brian/comments/489.aspx</wfw:comment><comments>http://conduction.com/blogs/brian/archive/2006/03/16/489.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://conduction.com/blogs/brian/comments/commentRss/489.aspx</wfw:commentRss><trackback:ping>http://conduction.com/blogs/brian/services/trackbacks/489.aspx</trackback:ping><description>In addition to his &lt;A href="http://haddadink.com/newsletter/"&gt;Hard Working Words newsletter&lt;/A&gt;, copywriter and fellow Seattleite Chris Haddad &lt;A href="http://www.haddadink.com/blog/"&gt;now has a blog&lt;/A&gt;, go check it out!&lt;img src ="http://conduction.com/blogs/brian/aggbug/489.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>