<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Imaya's Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/imayak/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/imayak/feed.xml</link>
    <description>Windows Communication Foundation and more...</description>
    <lastBuildDate>Wed, 17 Apr 2019 04:05:43 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>MySpace announces support for Microsoft Platforms, Silverlight Toolkit Available this week - Spread the Word!!</title>
      <link>https://docs.microsoft.com/archive/blogs/imayak/myspace-announces-support-for-microsoft-platforms-silverlight-toolkit-available-this-week-spread-the-word</link>
      <pubDate>Tue, 31 Mar 2009 12:10:00 GMT</pubDate>
      <dc:creator><![CDATA[imayak]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/imayak/2009/03/31/myspace-announces-support-for-microsoft-platforms-silverlight-toolkit-available-this-week-spread-the-word/</guid>
      <description><![CDATA[A Great Leap for...]]></description>
      <content:encoded><![CDATA[<P>A Great Leap for Silverlight&nbsp;!!</P>
<P><A href="https://blogs.msdn.com/synergist/archive/2009/03/30/silverlight-for-the-myspace-developer-platform.aspx">https://blogs.msdn.com/synergist/archive/2009/03/30/silverlight-for-the-myspace-developer-platform.aspx</A></P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>IE 8 RC1 Released</title>
      <link>https://docs.microsoft.com/archive/blogs/imayak/ie-8-rc1-released</link>
      <pubDate>Wed, 28 Jan 2009 01:08:16 GMT</pubDate>
      <dc:creator><![CDATA[imayak]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/imayak/2009/01/28/ie-8-rc1-released/</guid>
      <description><![CDATA[Dear Friends,  You know I work at Microsoft, and that I love technology.&#160; Sometimes I love...]]></description>
      <content:encoded><![CDATA[<p><font face="Segoe UI">Dear Friends,</font></p>  <p><font face="Segoe UI">You know I work at Microsoft, and that I love technology.&#160; Sometimes I love Microsoft technology so much that I can’t wait to tell people about it, and this is one of those times.&#160; Microsoft has just released the Release Candidate 1 for Internet Explorer 8, and I think you should </font><a href="https://www.microsoft.com/ie"><font face="Segoe UI">install it</font></a><font face="Segoe UI"> and use it today.</font></p>  <p><font face="Segoe UI">You may want to know what a “release candidate” is:&#160; that’s techno-speak for an almost-final version of software, like a sneak preview. </font></p>  <p><font face="Segoe UI">Internet Explorer 8 RC1 is much faster than previous versions of Internet Explorer, so you’ll notice that difference right away.&#160; But you’ll also notice some cool new features that will make your surfing experience faster and easier—not mention a whole lot safer.</font></p>  <p><font face="Segoe UI">· Highlight a street address in your Hotmail, Yahoo Mail, or other web mail account, right-click on the blue button that appears, and hover over “Map with Live Search.”&#160; Presto!&#160; You’ll see the map with the location right there—no more copying and pasting street addresses from web mail to a mapping site.&#160; Plus, you can choose what mapping service you want to use.</font></p>  <p><font face="Segoe UI">· Go to the search box in the top right, and type a search item—see how the enhanced Instant Search Box is more helpful, providing real-time search suggestions, including images, from your chosen search provider. </font></p>  <p><font face="Segoe UI">· Click on a new tab, and see the options that are presented there, including “InPrivate Browsing.”&#160; Click InPrivate Browsing and watch what happens—you are now in a browser session that is leaving no trail behind, so research gift suggestions for your significant other to your heart’s content without worrying about who might pick up the crumbs after you.&#160; </font></p>  <p><font face="Segoe UI">Harder to see are the many security enhancements that will help keep you protected against the ever-evolving online threats—things like protection from cross-site scripting attacks that no other browser offers.</font></p>  <p><font face="Segoe UI">We’re friends, and you know I wouldn’t lead you astray.&#160; Let me know what you think of </font><a href="https://www.microsoft.com/ie8"><font face="Segoe UI">IE8 RC1</font></a><font face="Segoe UI">.</font></p>]]></content:encoded>
    </item>
    <item>
      <title>VBScript for Creating and Sharing a Folder</title>
      <link>https://docs.microsoft.com/archive/blogs/imayak/vbscript-for-creating-and-sharing-a-folder</link>
      <pubDate>Fri, 05 Dec 2008 10:32:27 GMT</pubDate>
      <dc:creator><![CDATA[imayak]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/imayak/2008/12/05/vbscript-for-creating-and-sharing-a-folder/</guid>
      <description><![CDATA[Nothing to type. The Code is well documented. :)  '--------------------------------------...]]></description>
      <content:encoded><![CDATA[<p><font face="Segoe UI" color="#000000" size="2">Nothing to type. The Code is well documented. :)</font></p>  <p><font face="Courier New" color="#0000ff" size="2">'--------------------------------------     <br />'Script Start      <br />'Owner - Imayakumar J.      <br />'Date - December 5 2008      <br />'-------------------------------------- </font></p>  <p><font face="Courier New" color="#0000ff">'---------------------------------------------------------     <br />' Get the Folder name      <br />'--------------------------------------------------------- </font></p>  <p><font face="Courier New" color="#0000ff">'wscript.Echo Date </font></p>  <p><font face="Courier New" color="#0000ff">dim thismonth, thisday, thisyear, foldername </font></p>  <p><font face="Courier New" color="#0000ff">'wscript.echo Month(Date) </font></p>  <p><font face="Courier New" color="#0000ff">thismonth = Month(Date)     <br />thisday = Day(Date)      <br />thisyear = Year(Date) </font></p>  <p><font face="Courier New" color="#0000ff">if len(thisday) = 1 then     <br />thisday = &quot;0&quot;&amp;thisday      <br />end if </font></p>  <p><font face="Courier New" color="#0000ff">foldername = thismonth&amp;thisday&amp;thisyear </font></p>  <p><font face="Courier New" color="#0000ff">'----------------------------------------------------     <br />'Create folder      <br />'---------------------------------------------------- </font></p>  <p><font face="Courier New" color="#0000ff">Dim filesys, returnvalue </font></p>  <p><font face="Courier New" color="#0000ff">Set filesys = CreateObject(&quot;Scripting.FileSystemObject&quot;) </font></p>  <p><font face="Courier New" color="#0000ff">'wscript.Echo returnvalue </font></p>  <p><font face="Courier New" color="#0000ff">filesys.createfolder &quot;c:\&quot;&amp;foldername </font></p>  <p><font face="Courier New" color="#0000ff">'---------------------------------------------------------     <br />' Check if another shar with the same name exists      <br />'--------------------------------------------------------- </font></p>  <p><font face="Courier New" color="#0000ff">strComputer = &quot;.&quot;     <br />Set objWMIService = GetObject(&quot;winmgmts:&quot; _      <br />&#160;&#160;&#160; &amp; &quot;{impersonationLevel=impersonate}!\\&quot; &amp; strComputer &amp; &quot;\root\cimv2&quot;)      <br />Set colShares = objWMIService.ExecQuery _      <br />&#160;&#160;&#160; (&quot;Select * from Win32_Share Where Name = 'INGEST'&quot;)      <br />For Each objShare in colShares      <br />&#160;&#160;&#160; objShare.Delete      <br />Next </font></p>  <p><font face="Courier New" color="#0000ff">'-----------------------------------------------------     <br />' Share the created folder      <br />'----------------------------------------------------- </font></p>  <p><font face="Courier New" color="#0000ff">Const FILE_SHARE = 0     <br />Const MAXIMUM_CONNECTIONS = 25      <br />strComputer = &quot;.&quot;      <br />Set objWMIService = GetObject(&quot;winmgmts:&quot; _      <br />&#160;&#160;&#160; &amp; &quot;{impersonationLevel=impersonate}!\\&quot; &amp; strComputer &amp; &quot;\root\cimv2&quot;)      <br />Set objNewShare = objWMIService.Get(&quot;Win32_Share&quot;)      <br />errReturn = objNewShare.Create _      <br />&#160;&#160;&#160; (&quot;c:\&quot;&amp;foldername, &quot;INGEST&quot;, FILE_SHARE, _      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; MAXIMUM_CONNECTIONS, &quot;Notes to Exchange Migration Share.&quot;) </font></p>  <p><font face="Courier New" color="#0000ff">if errReturn = &quot;0&quot; then     <br />&#160;&#160;&#160; wscript.echo &quot;Success&quot;      <br />else      <br />&#160;&#160;&#160; wscript.echo &quot;Task Failed&quot;      <br />end if </font></p>  <p><font face="Courier New" color="#0000ff">'---------------------------------------------     <br />' Script End      <br />'-------------------------------&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; </font></p>  <p><font face="Segoe UI" color="#000000" size="2">Enjoy !!</font></p>]]></content:encoded>
    </item>
    <item>
      <title>Microsoft Web Platform Installer Released</title>
      <link>https://docs.microsoft.com/archive/blogs/imayak/microsoft-web-platform-installer-released</link>
      <pubDate>Mon, 24 Nov 2008 23:10:30 GMT</pubDate>
      <dc:creator><![CDATA[imayak]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/imayak/2008/11/24/microsoft-web-platform-installer-released/</guid>
      <description><![CDATA[Download it here: https://www.microsoft.com/web/channel/products/WebPlatformInstaller.aspx  What is...]]></description>
      <content:encoded><![CDATA[<p><font face="Courier New" color="#0000ff" size="2">Download it here: </font><a href="https://www.microsoft.com/web/channel/products/WebPlatformInstaller.aspx"><font face="Courier New" color="#0000ff" size="2">https://www.microsoft.com/web/channel/products/WebPlatformInstaller.aspx</font></a></p>  <p><font face="Segoe UI" size="2"><strong>What is Microsoft Web Platform Installer? (WebPI)</strong></font></p>  <p><font face="Segoe UI" size="2">The Web Platform Installer (Web PI) is a simple tool that installs Microsoft's entire Web Platform, including IIS7, Visual Web Developer 2008 Express Edition, SQL Server 2008 Express Edition and the .NET Framework. Using the Web Platform Installer&#8217;s user interface, you can choose to install either specific products or the entire Microsoft Web Platform onto your computer. The Web PI also helps keep your products up to date by always offering the latest additions to the Web Platform.</font></p>  <p><font face="Segoe UI" size="2"><strong>What is the Microsoft Web Application Installer? (WebAI):</strong></font></p>  <p><font face="Segoe UI" size="2">The Web Application Installer Beta is designed to help get you up and running with the most widely used Web Applications freely available for your Windows Server. Web AI provides support for popular ASP.Net and PHP Web applications including Graffiti, DotNetNuke, WordPress, Drupal, OSCommerce and more. With just a few simple clicks, Web AI will check your machine for the necessary pre-requisites, download these applications from their source location in the community, walk you through basic configuration items and then install them on your computer.</font></p>  <p><font face="Segoe UI" size="2"><strong>Microsoft Web Platform Installer Benefits</strong></font></p>  <p><font face="Segoe UI" size="2"><strong><em>Obtain components of the Microsoft Web Platform quickly and easily</em></strong></font></p>  <p><font face="Segoe UI" size="2">The Microsoft Web Platform Installer provides a single installer that runs on Windows XP SP3, Windows Vista SP1, Windows Server 2003 SP2, and Windows Server 2008, to download the Microsoft Web Platform, including IIS 6.0 and 7.0, SQL Server 2008 Express, .NET Framework 3.5 SP1 and Visual Web Developer 2008 Express SP1. The installer also identifies and installs Extensions for IIS 7.0 and ASP.NET, service packs, database drivers and other relevant Web platform technologies.</font></p>  <p><font face="Segoe UI" size="2"><em><strong>Choose which components to install to set up a complete or custom Web platform</strong></em></font></p>  <p><font face="Segoe UI" size="2">The Web Platform Installer offers three installation options &#8211; Complete, which installs all available server and development products, Web server components, Web server extensions, and additional technologies; ASP.NET Developer, which installs the server components, tools and technologies that support the development and hosting of ASP.NET applications; and Custom, which allows you to choose exactly which components are installed to customize and streamline your Web platform. For example, you can choose specific components to support developing and hosting PHP applications on IIS 7.0, with support for data-driven applications through the SQL Server driver for PHP.</font></p>  <p><font face="Segoe UI" size="2"><strong><em>Install the latest versions of Microsoft Web Platform products, components and tools.</em></strong></font></p>  <p><font face="Segoe UI" size="2">The Web Platform Installer downloads an XML-based manifest of available products and technologies, which is continually updated to ensure that each time the tool is run, it will offer the most current components and the latest versions of each technology, including service packs and other software updates. In addition, the Web Platform Installer will highlight newly available or pre-release software.</font></p>  <p><font face="Segoe UI" size="2"><strong></strong></font></p>  <p><font face="Segoe UI" size="2"><strong>Features</strong></font></p>  <ul>   <li><font face="Segoe UI" size="2"><strong><em>Single installer for all Microsoft Web Platform components including:</em></strong></font></li>    <ul>     <li><font face="Segoe UI" size="2">Internet Information Services (IIS) 5.1 on Windows XP SP3</font></li>      <li><font face="Segoe UI" size="2">IIS 6.0 on Windows Server 2003 SP2</font></li>      <li><font face="Segoe UI" size="2">IIS 7.0 on Windows Vista SP1 and Windows Server 2008</font></li>      <li><font face="Segoe UI" size="2">SQL Server 2008 Express</font></li>      <li><font face="Segoe UI" size="2">.NET Framework 3.5 SP1</font></li>      <li><font face="Segoe UI" size="2">Visual Web Developer 2008 Express SP1</font></li>   </ul>    <li><font face="Segoe UI" size="2"><strong><em>ASP.NET, Complete and Custom installation options</em></strong></font></li>    <li><font face="Segoe UI" size="2"><strong><em>XML-based product manifest updated automatically when tool is run</em></strong></font></li> </ul>  <p><b>Links</b></p>  <ul>   <li><a href="https://www.microsoft.com/web/channel/products/WebPlatformInstaller.aspx"><font face="Courier New" color="#0000ff" size="2">Microsoft Web Platform Installer Overview</font></a></li>    <li><a href="https://forums.iis.net/1155.aspx"><font face="Courier New" color="#0000ff" size="2">Microsoft Web Platform Installer Forum</font></a></li>    <li><a href="https://www.microsoft.com/web/"><font face="Courier New" color="#0000ff" size="2">Microsoft Web Platform Portal</font></a></li>    <li><a href="https://www.iis.net/"><font face="Courier New" color="#0000ff" size="2">IIS.net Community Portal</font></a></li> </ul>  <p><font face="Segoe UI" size="2">&#160;</font></p>]]></content:encoded>
    </item>
    <item>
      <title>.NET Threading</title>
      <link>https://docs.microsoft.com/archive/blogs/imayak/net-threading</link>
      <pubDate>Tue, 18 Nov 2008 11:06:57 GMT</pubDate>
      <dc:creator><![CDATA[imayak]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/imayak/2008/11/18/net-threading/</guid>
      <description><![CDATA[Just came across this wonderful series of posts of my friend Raja on .NET threading and its...]]></description>
      <content:encoded><![CDATA[<p><font face="Segoe UI" size="2">Just came across this wonderful series of posts of my friend Raja on .NET threading and its internals. </font></p>  <p><font face="Segoe UI" size="2">He has detailed every aspect of .NET threads, its management, pooling and lifecycle. I would recommend anyone to have a look at this great series of 10 posts here</font></p>  <p><a title="https://blogs.msdn.com/rnarayan/archive/2008/06/17/threading-deep-dive-day-1.aspx" href="https://blogs.msdn.com/rnarayan/archive/2008/06/17/threading-deep-dive-day-1.aspx"><font face="Courier New" color="#0000ff" size="2">https://blogs.msdn.com/rnarayan/archive/2008/06/17/threading-deep-dive-day-1.aspx</font></a></p>  <p><font face="Segoe UI" size="2">Enjoy !!</font></p>]]></content:encoded>
    </item>
    <item>
      <title>Windows Live Hotmail – The Beautiful</title>
      <link>https://docs.microsoft.com/archive/blogs/imayak/windows-live-hotmail-the-beautiful</link>
      <pubDate>Mon, 10 Nov 2008 23:45:10 GMT</pubDate>
      <dc:creator><![CDATA[imayak]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/imayak/2008/11/10/windows-live-hotmail-the-beautiful/</guid>
      <description><![CDATA[What a sweet surprise to land in such a wonderful Inbox page this morning. The Live Mail has...]]></description>
      <content:encoded><![CDATA[<p><font size="2" face="Segoe UI">What a sweet surprise to land in such a wonderful Inbox page this morning. The Live Mail has changed, for good. Actually, it appears to be in the best of its shape than ever before.</font></p>  <p><font size="2" face="Segoe UI">It is 56% faster than previous, clean and friendly looking and very readable. This is really a very good step forward by the Live Mail team in order to compete and win back the people from the competitors. </font></p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/imayak/WindowsLiveWriter/WindowsLiveHotmailTheBeautiful_8D44/image_14.png" original-url="https://blogs.msdn.com/blogfiles/imayak/WindowsLiveWriter/WindowsLiveHotmailTheBeautiful_8D44/image_14.png"><font color="#333333" size="2" face="Segoe UI"><img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/imayak/WindowsLiveWriter/WindowsLiveHotmailTheBeautiful_8D44/image_thumb_6.png" original-url="https://blogs.msdn.com/blogfiles/imayak/WindowsLiveWriter/WindowsLiveHotmailTheBeautiful_8D44/image_thumb_6.png" width="792" height="337" /></font></a><font size="2" face="Segoe UI"> </font></p>  <p><font size="2" face="Segoe UI">I love the below Contacts picker..</font></p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/imayak/WindowsLiveWriter/WindowsLiveHotmailTheBeautiful_8D44/image_10.png" original-url="https://blogs.msdn.com/blogfiles/imayak/WindowsLiveWriter/WindowsLiveHotmailTheBeautiful_8D44/image_10.png"><font color="#333333" size="2" face="Segoe UI"><img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/imayak/WindowsLiveWriter/WindowsLiveHotmailTheBeautiful_8D44/image_thumb_4.png" original-url="https://blogs.msdn.com/blogfiles/imayak/WindowsLiveWriter/WindowsLiveHotmailTheBeautiful_8D44/image_thumb_4.png" width="956" height="226" /></font></a><font size="2" face="Segoe UI"> </font></p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/imayak/WindowsLiveWriter/WindowsLiveHotmailTheBeautiful_8D44/image_8.png" original-url="https://blogs.msdn.com/blogfiles/imayak/WindowsLiveWriter/WindowsLiveHotmailTheBeautiful_8D44/image_8.png"><font color="#333333" size="2" face="Segoe UI"><img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/imayak/WindowsLiveWriter/WindowsLiveHotmailTheBeautiful_8D44/image_thumb_3.png" original-url="https://blogs.msdn.com/blogfiles/imayak/WindowsLiveWriter/WindowsLiveHotmailTheBeautiful_8D44/image_thumb_3.png" width="550" height="359" /></font></a><font size="2" face="Segoe UI"> </font></p>  <p><font size="2" face="Segoe UI"></font></p>  <p><font size="2" face="Segoe UI">The contact picker is lightning fast and very easy and intuitive to use. </font></p>  <p><font size="2" face="Segoe UI">With the upcoming ever-growing mailbox limit, faster uploads, IM on the web feature, and better use interface, Live Mail might even pull back customers lost in the past few years.</font></p>  <p><font size="2" face="Segoe UI">Overall, the new interface deserves a 5 star rating.</font></p>  <p><font size="2" face="Segoe UI">Happy Emailing !!! :)</font></p>]]></content:encoded>
    </item>
    <item>
      <title>Not Using using() {..}</title>
      <link>https://docs.microsoft.com/archive/blogs/imayak/not-using-using</link>
      <pubDate>Mon, 03 Nov 2008 01:16:36 GMT</pubDate>
      <dc:creator><![CDATA[imayak]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/imayak/2008/11/03/not-using-using/</guid>
      <description><![CDATA[Yes, the title is a little confusing. Just wanted to make it little interesting that&#8217;s all and...]]></description>
      <content:encoded><![CDATA[<p><font size="2" face="Segoe UI">Yes, the title is a little confusing. Just wanted to make it little interesting that&#8217;s all and no other intentions behind it :)</font></p>  <p><font size="2" face="Segoe UI">You must have encountered the following error message often while coding WCF,</font></p>  <p><font color="#0000ff" size="2" face="Courier New">The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state.</font></p>  <p><font size="2" face="Segoe UI">And yes, it does not give any other detail except the above message. I had no clue on what is happening when I got this error the first time. But the solution to it is simple. Just *remove* the &#8216;using..{}&#8217; block and replace it with a try{}..catch() and it works as expected. </font></p>  <p><font size="2" face="Segoe UI">Unless you do so, you would never get the actual exception information that has taken place in the method because, WCF replaces all information detail with the above exception message.</font></p>  <p><font size="2" face="Segoe UI">For more information on why this happens, take a look at the following blog post.</font></p>  <p><a title="https://blog.genom-e.com/CommentView,guid,b9e3019d-0d68-4344-9c7a-407774323d0f.aspx" href="https://blog.genom-e.com/CommentView,guid,b9e3019d-0d68-4344-9c7a-407774323d0f.aspx"><font color="#0000ff" size="2" face="Courier New">https://blog.genom-e.com/CommentView,guid,b9e3019d-0d68-4344-9c7a-407774323d0f.aspx</font></a></p>  <p><font size="2" face="Segoe UI">Happy Coding !!</font></p>]]></content:encoded>
    </item>
    <item>
      <title>WCF – BEA Aqualogic Interop Issue</title>
      <link>https://docs.microsoft.com/archive/blogs/imayak/wcf-bea-aqualogic-interop-issue</link>
      <pubDate>Tue, 07 Oct 2008 06:01:26 GMT</pubDate>
      <dc:creator><![CDATA[imayak]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/imayak/2008/10/07/wcf-bea-aqualogic-interop-issue/</guid>
      <description><![CDATA[There are always constraints when it comes to interoperability between .NET and Java platforms. I...]]></description>
      <content:encoded><![CDATA[<p><font size="2" face="Segoe UI">There are always constraints when it comes to interoperability between .NET and Java platforms. I had to go through a 3 week long struggle in making a simple thing work on these platforms. </font></p>  <p><font size="2" face="Segoe UI">Here is the requirement,</font></p>  <blockquote>   <p><font size="2" face="Segoe UI">Develop a WCF client which should talk to a Java Web Service running on Aqua Logic Web Server. The service is secured by 2 Way HTTPS (both Server &amp; Client Certs) and message signing for non-repudiation.</font></p> </blockquote>  <p><font size="2" face="Segoe UI">Immediately after you see this requirement, anyone would just advice &#8220;TransportWithMessageCredentail&#8221; security mode which is out of the box as I did. I precisely did the same but wouldn&#8217;t succeed. Why? </font></p>  <p><font size="2" face="Segoe UI">The reason is simple. &#8220;TransportWithMessageCredential&#8221; by default signs the &#8220;timestamp&#8221; element on the SOAP Header and sends it across. It is designed in this way because, the timestamp is the smallest attribute and signing it takes lesser cycles of canonicalization, compared to any other element in the entire SOAP content. But, ALSB (AquaLogic Service Bus)&#160; wouldn&#8217;t recognize this request. It was always throwing an error saying,</font></p>  <p><font color="#0000ff" size="2" face="Courier New">No id attribute on element </font><a href="https://schemas.xmlsoap.org/soap/envelope/:Body"><font color="#0000ff" size="2" face="Courier New">https://schemas.xmlsoap.org/soap/envelope/:Body</font></a></p>  <p><font size="2" face="Segoe UI">This means that ALSB requires the Body to be signed, and nothing else. </font></p>  <p><font size="2" face="Segoe UI">There is no way to address this interop issue with not only the out-of-box &#8220;TransportWithMessageCredentail&#8221; security mode but also with any other custom configuration as well.</font></p>  <p><font size="2" face="Segoe UI">But there is always a way to make things work in some or the other way. Here I show you how to make it work with a small modification on the service side.</font></p>  <p><font size="2" face="Segoe UI">In my above said requirement, the Request is signed (SOAP Body), but not the Response. With the following configuration, you can make WCF sign the request (body) and still use transport security.</font></p>  <p><font color="#0000ff" size="2" face="Courier New">&lt;customBinding&gt;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;binding name=&quot;SigningBinding&quot;&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;textMessageEncoding messageVersion=&quot;Soap11&quot; /&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;security authenticationMode=&quot;MutualCertificate&quot; requireDerivedKeys=&quot;false&quot;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; includeTimestamp=&quot;false&quot; keyEntropyMode=&quot;ClientEntropy&quot;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; messageProtectionOrder=&quot;SignBeforeEncrypt&quot;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; messageSecurityVersion=&quot;WSSecurity10WSTrustFebruary2005WSSecureConversation</font></p>  <p><font color="#0000ff" size="2" face="Courier New">February2005WSSecurityPolicy11BasicSecurityProfile10&quot;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; requireSecurityContextCancellation=&quot;false&quot; securityHeaderLayout=&quot;Strict&quot; allowSerializedSigningTokenOnReply=&quot;true&quot;&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;secureConversationBootstrap /&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;localClientSettings detectReplays=&quot;false&quot;/&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/security&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;httpsTransport requireClientCertificate=&quot;true&quot;/&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/binding&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;/customBinding&gt;</font></p>  <p><font size="2" face="Segoe UI">But the catch here is, WCF expects the response also to be signed as it signs the request. It necessarily asks you to have the server certificate as well, installed on the client machine which is accessing the service.</font></p>  <p><font size="2" face="Segoe UI">If you have the freedom to make the service behave so, you are out of trouble.</font></p>  <p><font size="2" face="Segoe UI">Below is the rest of the configuration..</font></p>  <p><font color="#0000ff" size="2" face="Courier New">&lt;endpoint address=</font><a href="https://domain.com/services/service/"><font color="#0000ff" size="2" face="Courier New">https://domain.com/services/service</font></a>    <br /><font color="#0000ff" size="2" face="Courier New">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; behaviorConfiguration=&quot;ServiceSecurityBehavior&quot; binding=&quot;customBinding&quot;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; bindingConfiguration=&quot;SigningBinding&quot; contract=&quot;MyContract&quot;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; name=&quot;SuscribeEventEndPoint&quot;&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;identity&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;certificateReference storeLocation=&quot;LocalMachine&quot; x509FindType=&quot;FindByThumbprint&quot;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; findValue=&quot;v2d43d464abd384b5cc3a2d669862807241234567&quot; /&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/identity&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;/endpoint&gt;</font></p>  <p><font color="#0000ff" size="2" face="Courier New">&lt;behaviors&gt;     <br />&#160;&#160;&#160;&#160;&#160; &lt;endpointBehaviors&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;behavior name=&quot;ServiceSecurityBehavior&quot;&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;clientCredentials&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;clientCertificate findValue=&quot;123459f47cb80f67tgb385ae0ebc0b92f8861234&quot;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; storeLocation=&quot;LocalMachine&quot; x509FindType=&quot;FindByThumbprint&quot;/&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;serviceCertificate&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;defaultCertificate findValue=&quot;v2d43d464abd384b5cc3a2d669862807241234567&quot;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; storeLocation=&quot;LocalMachine&quot; x509FindType=&quot;FindByThumbprint&quot;/&gt; </font></p>  <p><font color="#0000ff" size="2" face="Courier New">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/serviceCertificate&gt;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/clientCredentials&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/behavior&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;/endpointBehaviors&gt;      <br />&lt;/behaviors&gt;</font></p>]]></content:encoded>
    </item>
    <item>
      <title>SvcUtil.exe – Quick Trick</title>
      <link>https://docs.microsoft.com/archive/blogs/imayak/svcutil-exe-quick-trick</link>
      <pubDate>Wed, 01 Oct 2008 10:14:31 GMT</pubDate>
      <dc:creator><![CDATA[imayak]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/imayak/2008/10/01/svcutil-exe-quick-trick/</guid>
      <description><![CDATA[When using SvcUtil.exe to generate proxy for a Web Service which references a .XSD, you might face...]]></description>
      <content:encoded><![CDATA[<p><font size="2" face="Segoe UI">When using SvcUtil.exe to generate proxy for a Web Service which references a .XSD, you might face this error very often:</font></p>  <p><font color="#0000ff" size="2" face="Courier New">Error: Cannot import wsdl:portType      <br />Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.XmlSerializerMessageContractImporter       <br />Error: The attribute tokenType is missing.       <br />XPath to Error Source: //wsdl:definitions[@targetNamespace='</font><a href="https://fw3rd.service"><font color="#0000ff" size="2" face="Courier New">https://fw3rd.service</font></a><font color="#0000ff" size="2" face="Courier New">s.telefonica.es/services/IDP']/wsdl:portType[@name='TokenTranslation'] </font></p>  <p><font color="#0000ff" size="2" face="Courier New">Error: Cannot import wsdl:binding      <br />Detail: There was an error importing a wsdl:portType that the wsdl:binding is dependent on.       <br />XPath to wsdl:portType: //wsdl:definitions[@targetNamespace='</font><a href="https://fw3rd.servic"><font color="#0000ff" size="2" face="Courier New">https://fw3rd.servic</font></a><font color="#0000ff" size="2" face="Courier New">es.telefonica.es/services/IDP']/wsdl:portType[@name='TokenTranslation']      <br />XPath to Error Source: //wsdl:definitions[@targetNamespace='</font><a href="https://fw3rd.service"><font color="#0000ff" size="2" face="Courier New">https://fw3rd.service</font></a><font color="#0000ff" size="2" face="Courier New">s.telefonica.es/services/IDP']/wsdl:binding[@name='TokenTranslationSOAP'] </font></p>  <p><font color="#0000ff" size="2" face="Courier New">Error: Cannot import wsdl:port      <br />Detail: There was an error importing a wsdl:binding that the wsdl:port is dependent on.       <br />XPath to wsdl:binding: //wsdl:definitions[@targetNamespace='</font><a href="https://fw3rd.service"><font color="#0000ff" size="2" face="Courier New">https://fw3rd.service</font></a>     <br /><font color="#0000ff" size="2" face="Courier New">s.telefonica.es/services/IDP']/wsdl:binding[@name='TokenTranslationSOAP']      <br />XPath to Error Source: //wsdl:definitions[@targetNamespace='</font><a href="https://fw3rd.service"><font color="#0000ff" size="2" face="Courier New">https://fw3rd.service</font></a><font color="#0000ff" size="2" face="Courier New">s.telefonica.es/services/IDP']/wsdl:service[@name='TokenTranslation']/wsdl:port[@name='TokenTranslationSOAP'] </font></p>  <p><font color="#0000ff" size="2" face="Courier New">Generating files...      <br />Warning: No code was generated.       <br />If you were trying to generate a client, this could be because the metadata documents did not contain any valid contracts or services       <br />or because all contracts/services were discovered to exist in /reference assemblies. Verify that you passed all the metadata documents to the tool. </font></p>  <p><font color="#0000ff" size="2" face="Courier New">Warning: If you would like to generate data contracts from schemas make sure to use the /dataContractOnly option.</font></p>  <p><font size="2" face="Segoe UI">It took me plenty of time to figure out the problem. But actually, the solution to it is simple. The SvcUtil.exe requires you to pass the .XSD files as parameters along with the input. It does not take the .XSD by itself even if you have given referenced it in the WSDL document.</font></p>  <p><font size="2" face="Segoe UI">The following syntax will fix the problem.</font></p>  <p><font color="#0000ff" size="2" face="Courier New">&gt; SvcUtil.exe &lt;WSDL Path&gt; &lt;.XSD Path&gt; [If you have multiple XSDs referenced, give all of them separated by space]</font></p>]]></content:encoded>
    </item>
    <item>
      <title>Using Custom SOAP Headers</title>
      <link>https://docs.microsoft.com/archive/blogs/imayak/using-custom-soap-headers</link>
      <pubDate>Mon, 15 Sep 2008 05:09:49 GMT</pubDate>
      <dc:creator><![CDATA[imayak]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/imayak/2008/09/15/using-custom-soap-headers/</guid>
      <description><![CDATA[Here is a simple way of adding custom SOAP Headers on an outgoing request.   Write a Data class as...]]></description>
      <content:encoded><![CDATA[<p><font face="Segoe UI">Here is a simple way of adding custom SOAP Headers on an outgoing request. </font></p>  <p><u><font face="Segoe UI">Write a Data class as shown below:</font></u></p>  <p><font color="#0000ff" face="Courier New">[DataContract(Namespace = </font><a href="https://personalspace.org"><font color="#0000ff" face="Courier New">&#8220;https://personalspace.org</font></a><font color="#0000ff" face="Courier New">&#8221;, Name =&quot;CustomHeader&quot;)]     <br />public class CustomHeader      <br />{      <br />private string something;      <br />[DataMember(Name=&#8221;CustomElement&#8221;)&#8221;]      <br />public string someThing      <br />{      <br />get { return something; }      <br />set { something= value; }      <br />}      <br />}</font></p>  <p><font face="Segoe UI">In the BeforeSendRequest() method of the class that you have implemented the IClientMessageInterceptor interface, add the code below</font></p>  <p><font color="#0000ff" face="Courier New">MessageHeader&lt;CustomHeader&gt; header = new MessageHeader&lt;CustomHeader&gt;();     <br />MyHeaderClass customHeader= new MyHeaderClass();      <br />customHeader.someThing = &quot;My value&quot;;      <br />header.Content = header;      <br />header.Actor = &#8220;anonymoususer&#8221;;</font></p>  <p><font color="#0000ff" face="Courier New">MessageHeader unTypedHeader =     <br />header.GetUntypedHeader(&quot;CustomHeader&quot;, &#8220;</font><a href="https://personalspace.org"><font color="#0000ff" face="Courier New">https://personalspace.org</font></a><font color="#0000ff" face="Courier New">&#8221;);     <br />request.Headers.Add(unTypedHeader);</font></p>  <p><font face="Segoe UI">That&#8217;s it. This will generate a header similar to the one below:</font></p>  <p><font color="#0000ff" face="Courier New">&lt;CustomHeader:actor=&quot;Anyone&quot; xmlns=&quot;https://personalspace.org&quot;&gt;     <br />&lt;CustomElement&gt;My Value&lt;/CustomElement&gt;      <br />&lt;/CustomHeader&gt;</font></p>  <p><font face="Segoe UI">Enjoy !!</font></p>]]></content:encoded>
    </item>
  </channel>
</rss>