<feed 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/" xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
    <title>Shailen Sukul</title>
    <link rel="self" type="application/xml" href="http://geekswithblogs.net/shailensukul/Atom.aspx" />
    <subtitle type="html">blog</subtitle>
    <id>http://geekswithblogs.net/shailensukul/Default.aspx</id>
    <author>
        <name>Shailen Sukul</name>
        <uri>http://geekswithblogs.net/shailensukul/Default.aspx</uri>
    </author>
    <generator uri="http://subtextproject.com" version="Subtext Version 0.0.0.0">Subtext</generator>
    <updated>2007-05-08T01:26:12Z</updated>
    <entry>
        <title>TO Get the App.Config file from another Assembly</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/shailensukul/archive/2007/05/08/112324.aspx" />
        <id>http://geekswithblogs.net/shailensukul/archive/2007/05/08/112324.aspx</id>
        <published>2007-05-08T01:26:12-05:00:00</published>
        <updated>2007-05-08T01:26:12Z</updated>
        <content type="html">&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;public&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;fName += &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;xDoc.Load(fName);&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;static&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt; GetAppConfig(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt; key)&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt; fName = &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;Assembly&lt;/font&gt;&lt;font size="2"&gt;.GetExecutingAssembly().Location.Substring(0,&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;Assembly&lt;/font&gt;&lt;font size="2"&gt;.GetExecutingAssembly().Location.LastIndexOf(&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;"\\"&lt;/font&gt;&lt;font size="2"&gt;));&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;"\\MyApp.exe.config"&lt;/font&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;XmlDocument&lt;/font&gt;&lt;font size="2"&gt; xDoc = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;XmlDocument&lt;/font&gt;&lt;font size="2"&gt;();&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;XmlNode&lt;/font&gt;&lt;font size="2"&gt; xNode = xDoc.SelectSingleNode(&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;"/configuration/appSettings"&lt;/font&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;XmlNode&lt;/font&gt;&lt;font size="2"&gt; keyNode = xNode.SelectSingleNode(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt;.Format(&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;"//add[@key='{0}']"&lt;/font&gt;&lt;font size="2"&gt;, key));&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;return&lt;/font&gt;&lt;font size="2"&gt; keyNode.Attributes[&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;"value"&lt;/font&gt;&lt;font size="2"&gt;].Value;&lt;/font&gt;&lt;img src="http://geekswithblogs.net/shailensukul/aggbug/112324.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/shailensukul/comments/112324.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/shailensukul/comments/commentRss/112324.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/shailensukul/services/trackbacks/112324.aspx</trackback:ping>
    </entry>
    <entry>
        <title>CData sections not appearing with XML Transform ( XSLT ) ( applies to XslCompiledTransform class )</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/shailensukul/archive/2006/11/27/99194.aspx" />
        <id>http://geekswithblogs.net/shailensukul/archive/2006/11/27/99194.aspx</id>
        <published>2006-11-27T14:38:00-06:00:00</published>
        <updated>2006-11-28T06:25:00Z</updated>
        <content type="html">&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;&lt;FONT color=#000000 size=4&gt;I have noticed an anamoly with doing XML Transformations in .Net.&amp;nbsp;If the&amp;nbsp;XSLT marks specific sections as CDATA, the output seems to missing that. &amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;&lt;FONT size=4&gt;Example: &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;&lt;FONT size=4&gt;&lt;U&gt;XSLT:&lt;/U&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=4&gt;&lt;FONT color=#800000&gt;xsl:output&lt;/FONT&gt;&lt;FONT color=#ff0000&gt; method&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;="&lt;/FONT&gt;xml&lt;FONT color=#0000ff&gt;"&lt;/FONT&gt;&lt;FONT color=#ff0000&gt; omit-xml-declaration&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;="&lt;/FONT&gt;yes&lt;FONT color=#0000ff&gt;"&lt;/FONT&gt;&lt;FONT color=#ff0000&gt; encoding&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;="&lt;/FONT&gt;UTF-8&lt;FONT color=#0000ff&gt;"&lt;/FONT&gt;&lt;FONT color=#ff0000&gt; indent&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;="&lt;/FONT&gt;yes&lt;FONT color=#0000ff&gt;"&lt;/FONT&gt;&lt;FONT color=#ff0000&gt; cdata-section-elements&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;="&lt;/FONT&gt;EMPLAST EMPFIRST&lt;FONT color=#0000ff&gt;"/&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=4&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000 size=4&gt;We would expect output to be of the format:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000 size=4&gt;&amp;lt;Employee&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;&amp;lt;EMPLAST&amp;gt;&amp;lt;![CDATA[John]]&amp;gt;&amp;lt;/EMPLAST&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;and so on...&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000 size=4&gt;&amp;lt;/Employee&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000 size=4&gt;However, the standard XSLT transformation does not output the CDATA bit, when done through .Net,&amp;nbsp;so what you get is &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000 size=4&gt;&amp;lt;EMPLAST&amp;gt;John&amp;lt;/EMPLAST&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000 size=4&gt;This because the default example on MSDN uses an XmlWriter that will, guess what,&amp;nbsp;write&amp;nbsp;the xml text as, well ...&amp;nbsp;xml and hence ignore the CDATA sections!! To properly write out the transformed text, use a TextWriter and all will be well again....&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#000000 size=4&gt;A complete example is given below:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;using&lt;/FONT&gt;&lt;FONT size=2&gt; System;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;using&lt;/FONT&gt;&lt;FONT size=2&gt; System.Collections.Generic;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;using&lt;/FONT&gt;&lt;FONT size=2&gt; System.IO;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;using&lt;/FONT&gt;&lt;FONT size=2&gt; System.Text;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;using&lt;/FONT&gt;&lt;FONT size=2&gt; System.Xml;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;using&lt;/FONT&gt;&lt;FONT size=2&gt; System.Xml.XPath;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;using&lt;/FONT&gt;&lt;FONT size=2&gt; System.Xml.Xsl;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;using&lt;/FONT&gt;&lt;FONT size=2&gt; System.Xml.Schema;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;....&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;/FONT&gt;public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;static&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt; TransformXml(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt; xml, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt; xsl)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;/* Load the xml into an XmlReader*/&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;XmlReader&lt;/FONT&gt;&lt;FONT size=2&gt; rXml = CreateXmlReaderFromString(xml);&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;/* Load the xsl into an XmlReader*/&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;XmlReader&lt;/FONT&gt;&lt;FONT size=2&gt; rXsl = CreateXmlReaderFromString(xsl);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Stream&lt;/FONT&gt;&lt;FONT size=2&gt; oStream = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;MemoryStream&lt;/FONT&gt;&lt;FONT size=2&gt;();&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;using&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;TextWriter&lt;/FONT&gt;&lt;FONT size=2&gt; tr = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;StreamWriter&lt;/FONT&gt;&lt;FONT size=2&gt;(oStream, outputEncoding))&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;/* Create a XslCompiledTransform class to do the transformation */&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;XslCompiledTransform&lt;/FONT&gt;&lt;FONT size=2&gt; trans = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;XslCompiledTransform&lt;/FONT&gt;&lt;FONT size=2&gt;();&lt;/P&gt;
&lt;P&gt;trans.Load(rXsl);&lt;/P&gt;
&lt;P&gt;trans.Transform(rXml, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;FONT size=2&gt;, tr);&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;// declare a buffer to hold the contents of the stream&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;byte&lt;/FONT&gt;&lt;FONT size=2&gt;[] arrBuffer = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;byte&lt;/FONT&gt;&lt;FONT size=2&gt;[oStream.Length];&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;// we have to set the position to 0 so that it moves the pointer back to&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;// the start of where we want to read&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;oStream.Position = 0;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;// read from the stream to our buffer&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt; iLastLength = oStream.Read(arrBuffer, 0, (&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt;)oStream.Length);&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;// have we read anything&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;FONT size=2&gt; (iLastLength &amp;gt; 0)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;// get our transformed xml using our encoder and the buffer&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;xml = outputEncoding.GetString(arrBuffer);&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;else&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;xml = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt;.Empty;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;return&lt;/FONT&gt;&lt;FONT size=2&gt; xml;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;private&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;static&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;XmlTextReader&lt;/FONT&gt;&lt;FONT size=2&gt; CreateXmlReaderFromString(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt; XML)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;XmlTextReader&lt;/FONT&gt;&lt;FONT size=2&gt; xmlReader = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;StringReader&lt;/FONT&gt;&lt;FONT size=2&gt; sReader = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;StringReader&lt;/FONT&gt;&lt;FONT size=2&gt;(XML);&lt;/P&gt;
&lt;P&gt;xmlReader = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;XmlTextReader&lt;/FONT&gt;&lt;FONT size=2&gt;(sReader);&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;return&lt;/FONT&gt;&lt;FONT size=2&gt; xmlReader;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;img src="http://geekswithblogs.net/shailensukul/aggbug/99194.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/shailensukul/comments/99194.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/shailensukul/comments/commentRss/99194.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/shailensukul/services/trackbacks/99194.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Helper code to extract embedded resource from project into Assembly</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/shailensukul/archive/2006/11/24/97962.aspx" />
        <id>http://geekswithblogs.net/shailensukul/archive/2006/11/24/97962.aspx</id>
        <published>2006-11-24T13:57:00-06:00:00</published>
        <updated>2006-11-24T13:57:00Z</updated>
        <content type="html">&lt;P&gt;The following is a handy piece of code for extracing an embedded stream of characters from your assembly and saving to a text file.&lt;/P&gt;
&lt;P&gt;1. Set the resource to Embedded.&lt;/P&gt;
&lt;P&gt;2. Copy the following piece of code:&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;static&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;FONT size=2&gt; WriteResourceToFile(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt; resourceName, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt; fileName)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;using&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Stream&lt;/FONT&gt;&lt;FONT size=2&gt; s = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Assembly&lt;/FONT&gt;&lt;FONT size=2&gt;.GetExecutingAssembly().GetManifestResourceStream(resourceName))&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&lt;/FONT&gt;&lt;FONT size=2&gt; (s != &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&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;byte&lt;/FONT&gt;&lt;FONT size=2&gt;[] buffer = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;byte&lt;/FONT&gt;&lt;FONT size=2&gt;[s.Length];&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&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;char&lt;/FONT&gt;&lt;FONT size=2&gt;[] sb = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;char&lt;/FONT&gt;&lt;FONT size=2&gt;[s.Length];&lt;/P&gt;
&lt;P&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;s.Read(buffer, 0, (&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt;)(s.Length));&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&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;/* convert the byte into ASCII text */&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&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;for&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt; i = 0; i &amp;lt;= buffer.Length - 1; i++)&lt;/P&gt;
&lt;P&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;/P&gt;
&lt;P&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;sb[i] = (&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;char&lt;/FONT&gt;&lt;FONT size=2&gt;)buffer[i];&lt;/P&gt;
&lt;P&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;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&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;using&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;StreamWriter&lt;/FONT&gt;&lt;FONT size=2&gt; sw = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;StreamWriter&lt;/FONT&gt;&lt;FONT size=2&gt;(fileName))&lt;/P&gt;
&lt;P&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;/P&gt;
&lt;P&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;sw.Write(sb);&lt;/P&gt;
&lt;P&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;sw.Flush();&lt;/P&gt;
&lt;P&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;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://geekswithblogs.net/shailensukul/aggbug/97962.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/shailensukul/comments/97962.aspx</wfw:comment>
        <slash:comments>3</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/shailensukul/comments/commentRss/97962.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/shailensukul/services/trackbacks/97962.aspx</trackback:ping>
    </entry>
    <entry>
        <title>How to get the target directory (TARGETDIR) in a customer windows installer</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/shailensukul/archive/2006/10/11/93722.aspx" />
        <id>http://geekswithblogs.net/shailensukul/archive/2006/10/11/93722.aspx</id>
        <published>2006-10-11T11:48:00-05:00:00</published>
        <updated>2006-10-11T11:48:00Z</updated>
        <content type="html">&lt;P&gt;&lt;FONT face=Arial size=2&gt;I hope the following will save you some time when dealing with custom windows installers.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;If you want to access the installation path in your customer installer class, your first instinct might be to use a [TARGETDIR] or [INSTALLDIR] &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;as a custom action (&lt;FONT color=#008000&gt;&lt;STRONG&gt;for example /DIR=[TARGETDIR]&lt;/STRONG&gt;&lt;/FONT&gt;) and attempt to access that in your custom installer class (&lt;FONT color=#008000&gt;&lt;STRONG&gt;for example. dir = Context.Parameters[&amp;#8220;DIR&amp;#8221;])&lt;/STRONG&gt;&lt;/FONT&gt;. &amp;nbsp;This will fail, since the TARGET is populated &lt;FONT color=#ff0000&gt;&lt;STRONG&gt;AFTER&lt;/STRONG&gt;&lt;/FONT&gt; the custom action is executed.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;I printed out the contents of the Context's parameter collection,&amp;nbsp;that is available to the Custom Action, as shown below:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial color=#a52a2a size=2&gt;Writing the contents of the Installation Context&lt;BR&gt;------------------------------------------------------------&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial color=#a52a2a size=2&gt;Key: [dir] Value: &lt;BR&gt;Key: [action] Value: install&lt;BR&gt;Key: [installtype] Value: notransaction&lt;BR&gt;Key: [assemblypath] Value: C:\Program Files\Company\Company Product\CompanyProduct.exe&lt;BR&gt;Key: [logfile] Value: &lt;BR&gt;------------------------------------------------------------&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;As seen above, you do have access to the [AssemblyPath] in the Custom Action and by stripping of the product.exe filename,&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;you can get the directory.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Here is a simple function that will achieve this:&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color=#0000ff&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt; &lt;FONT color=#0000ff&gt;string&lt;/FONT&gt; StripDir(&lt;FONT color=#0000ff&gt;string&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt; fullPath)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;FONT color=#0000ff&gt;string&lt;/FONT&gt; retValue = &lt;FONT color=#0000ff&gt;default&lt;/FONT&gt;(&lt;FONT color=#0000ff&gt;string&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&lt;FONT color=#0000ff&gt;if&lt;/FONT&gt; (fullPath != &lt;FONT color=#0000ff&gt;null&lt;/FONT&gt; &amp;amp;&amp;amp; fullPath != &lt;FONT color=#0000ff&gt;string&lt;/FONT&gt;.Empty &amp;amp;&amp;amp; fullPath != &lt;FONT color=#0000ff&gt;default&lt;/FONT&gt;(&lt;FONT color=#0000ff&gt;string&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;))&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;retValue = fullPath.Substring(0, fullPath.LastIndexOf(&lt;/FONT&gt;&lt;FONT face=Arial color=#800000&gt;@"\"&lt;/FONT&gt;&lt;FONT face=Arial&gt;));&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial color=#0000ff&gt;return&lt;/FONT&gt;&lt;FONT face=Arial&gt; retValue;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;So the final code will look like this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial color=#ff0000 size=2&gt;&lt;STRONG&gt;string installDir = StripDir(Context.Parameters[&amp;#8220;AssemblyPath&amp;#8220;]);&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://geekswithblogs.net/shailensukul/aggbug/93722.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/shailensukul/comments/93722.aspx</wfw:comment>
        <slash:comments>8</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/shailensukul/comments/commentRss/93722.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/shailensukul/services/trackbacks/93722.aspx</trackback:ping>
    </entry>
    <entry>
        <title>How to use FOR XML to return an Xml Document with a root element</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/shailensukul/archive/2006/09/07/90476.aspx" />
        <id>http://geekswithblogs.net/shailensukul/archive/2006/09/07/90476.aspx</id>
        <published>2006-09-07T11:20:00-05:00:00</published>
        <updated>2006-09-07T11:20:00Z</updated>
        <content type="html">&lt;P&gt;The query below shows how to create an XML document using FOR XML from a table (based on Sql Server 2000). To start with, run the sql script further below to create the sample table, and populate it with some data. Once the select script is run, data will be returned in the form:&lt;/P&gt;
&lt;P&gt;&amp;lt;Employees&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;Employee&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;field1&amp;gt;&amp;lt;/field1&amp;gt;&lt;/P&gt;
&lt;P&gt;...&lt;/P&gt;
&lt;P&gt;&amp;lt;/Employee&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;/Employees&amp;gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Query&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;select&amp;nbsp;1&amp;nbsp;as Tag,&lt;BR&gt;&amp;nbsp;NULL&amp;nbsp;as Parent,&lt;BR&gt;&amp;nbsp;NULL as [Employees!1!Employee!xml],&lt;BR&gt;&amp;nbsp;NULL as [Employee!2!OfficerId!xml], &lt;BR&gt;&amp;nbsp;NULL as [Employee!2!GivenName!xml], &lt;BR&gt;&amp;nbsp;NULL as [Employee!2!Surname!xml],&lt;BR&gt;&amp;nbsp;NULL as [Employee!2!LoginCode!xml],&lt;BR&gt;&amp;nbsp;NULL as [Employee!2!IsActive!xml]&lt;/P&gt;
&lt;P&gt;UNION ALL&lt;/P&gt;
&lt;P&gt;select&amp;nbsp;2,&lt;BR&gt;&amp;nbsp;1,&lt;BR&gt;&amp;nbsp;NULL,&lt;BR&gt;&amp;nbsp;Officer_ID, &lt;BR&gt;&amp;nbsp;Officer_Given_Names, &lt;BR&gt;&amp;nbsp;Officer_Surname,&lt;BR&gt;&amp;nbsp;CRTS_Login_Code,&lt;BR&gt;&amp;nbsp;Is_Active&lt;BR&gt;from &amp;nbsp;staging.dbo.tbl_Officer&lt;BR&gt;for xml explicit&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Table&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tbl_Officer]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)&lt;BR&gt;drop table [dbo].[tbl_Officer]&lt;BR&gt;GO&lt;/P&gt;
&lt;P&gt;CREATE TABLE [dbo].[tbl_Officer] (&lt;BR&gt;&amp;nbsp;[Officer_ID] [int] NOT NULL ,&lt;BR&gt;&amp;nbsp;[Officer_Given_Names] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,&lt;BR&gt;&amp;nbsp;[Officer_Surname] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,&lt;BR&gt;&amp;nbsp;[CRTS_Login_Code] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,&lt;BR&gt;&amp;nbsp;[Is_Active] [tinyint] NOT NULL &lt;BR&gt;) ON [PRIMARY]&lt;BR&gt;GO&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://geekswithblogs.net/shailensukul/aggbug/90476.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/shailensukul/comments/90476.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/shailensukul/comments/commentRss/90476.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/shailensukul/services/trackbacks/90476.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Things to watch out for when implementing a custom role provider</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/shailensukul/archive/2006/07/30/86628.aspx" />
        <id>http://geekswithblogs.net/shailensukul/archive/2006/07/30/86628.aspx</id>
        <published>2006-07-30T16:57:00-05:00:00</published>
        <updated>2006-07-30T16:58:00Z</updated>
        <content type="html">&lt;P&gt;I recently implemented a&amp;nbsp;custom role provider for an asp.net project and discovered an interesting point.&lt;/P&gt;
&lt;P&gt;I had to instantiate a role business component in the custom provider class like so:&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;class&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;MyRoleProvider&lt;/FONT&gt;&lt;FONT size=2&gt; : &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;RoleProvider&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;BLRole&lt;/FONT&gt;&lt;FONT size=2&gt; blRole = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;FONT size=2&gt; MyRoleProvider()&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;blRole = new BLRole();&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;All I could see on at runtime was:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Parser Error Message: &lt;/STRONG&gt;&lt;FONT face=Arial&gt;Exception has been thrown by the target of an invocation.&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;I moved the instantiation code into the Initialize block and hey pretso, the IDE now told what was causing my error, ie the precached version of my business logic component was throwing the error!&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;override&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;FONT size=2&gt; Initialize(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt; name, System.Collections.Specialized.&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;NameValueCollection&lt;/FONT&gt;&lt;FONT size=2&gt; config)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;// Verify that config isn't null&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;FONT size=2&gt; (config == &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;throw&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;ArgumentNullException&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"config"&lt;/FONT&gt;&lt;FONT size=2&gt;);&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;// instantiate the role business component&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;blRole = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;BLRole&lt;/FONT&gt;&lt;FONT size=2&gt;();&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;img src="http://geekswithblogs.net/shailensukul/aggbug/86628.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/shailensukul/comments/86628.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/shailensukul/comments/commentRss/86628.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/shailensukul/services/trackbacks/86628.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Unable to get installer types</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/shailensukul/archive/2006/06/27/83240.aspx" />
        <id>http://geekswithblogs.net/shailensukul/archive/2006/06/27/83240.aspx</id>
        <published>2006-06-27T14:17:00-05:00:00</published>
        <updated>2006-06-27T14:17:00Z</updated>
        <content type="html">&lt;P&gt;I got the above error message when uninstalling a Windows Service setup from the Add/Remove option.&lt;/P&gt;
&lt;P&gt;If you ever get an error message like above, then one or dependent assemblies for your installed application may be missing. Try to locate &lt;STRONG&gt;and install&lt;/STRONG&gt; the dependent assemblies manually and then Remove the project using the Add/Remove option.&lt;/P&gt;&lt;img src="http://geekswithblogs.net/shailensukul/aggbug/83240.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/shailensukul/comments/83240.aspx</wfw:comment>
        <slash:comments>3</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/shailensukul/comments/commentRss/83240.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/shailensukul/services/trackbacks/83240.aspx</trackback:ping>
    </entry>
    <entry>
        <title>REST style urls not working in IIS</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/shailensukul/archive/2006/06/13/81671.aspx" />
        <id>http://geekswithblogs.net/shailensukul/archive/2006/06/13/81671.aspx</id>
        <published>2006-06-13T14:29:00-05:00:00</published>
        <updated>2006-06-13T14:29:00Z</updated>
        <content type="html">&lt;P&gt;HTTP GET/POST are disabled by default on web servers in the new .NET 1.1 which could make creating REST-type web services more difficult. The error message you get is:&lt;/P&gt;
&lt;H2&gt;&lt;I&gt;Request format is unrecognized.&lt;/I&gt; &lt;/H2&gt;
&lt;P&gt;&lt;FONT face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif "&gt;&lt;B&gt;Description: &lt;/B&gt;An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. &lt;BR&gt;The fix is to enable GET/POST. See &lt;A href="http://support.microsoft.com/default.aspx?scid=kb;en-us;819267"&gt;http://support.microsoft.com/default.aspx?scid=kb;en-us;819267&lt;/A&gt;&amp;nbsp;to enable it.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://geekswithblogs.net/shailensukul/aggbug/81671.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/shailensukul/comments/81671.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/shailensukul/comments/commentRss/81671.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/shailensukul/services/trackbacks/81671.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Script to search in Stored Proces</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/shailensukul/archive/2006/05/26/79685.aspx" />
        <id>http://geekswithblogs.net/shailensukul/archive/2006/05/26/79685.aspx</id>
        <published>2006-05-26T12:15:00-05:00:00</published>
        <updated>2006-05-26T12:15:00Z</updated>
        <content type="html">&lt;P&gt;&lt;STRONG&gt;Script to search in stored procs&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;select &amp;nbsp;upper(SysObjects.Name),SysComments.Text&lt;BR&gt;from &amp;nbsp;SysObjects, SysComments&amp;nbsp;&amp;nbsp; &lt;BR&gt;where &amp;nbsp;SysObjects.type='P'&lt;BR&gt;and (SysObjects.ID = SysComments.ID)&lt;BR&gt;and SysComments.Text like '%SearchString%'&lt;/P&gt;&lt;img src="http://geekswithblogs.net/shailensukul/aggbug/79685.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/shailensukul/comments/79685.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/shailensukul/comments/commentRss/79685.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/shailensukul/services/trackbacks/79685.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Sql Server Stored Procedure oddity</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/shailensukul/archive/2006/05/08/77518.aspx" />
        <id>http://geekswithblogs.net/shailensukul/archive/2006/05/08/77518.aspx</id>
        <published>2006-05-08T09:29:00-05:00:00</published>
        <updated>2006-05-08T09:29:00Z</updated>
        <content type="html">&lt;P&gt;I ran across this weird problem while debugging a stored procedure in Sql Server 2000.&lt;/P&gt;
&lt;P&gt;Here's a sample stored procedure: &lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma color=#006400 size=2&gt;drop procedure p1&lt;BR&gt;go&lt;BR&gt;create procedure p1&lt;BR&gt;as&lt;BR&gt;&amp;nbsp;&lt;BR&gt;create table #t1(&lt;BR&gt;&amp;nbsp;col1 int identity(1,1),&lt;BR&gt;&amp;nbsp;col2 datetime,&lt;BR&gt;&amp;nbsp;col3 int&lt;BR&gt;)&lt;BR&gt;&amp;nbsp;&lt;BR&gt;select *&lt;BR&gt;from #t1 &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma color=#006400 size=2&gt;return &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=Tahoma color=#006400&gt;update #t1&lt;BR&gt;set col3 = col2&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face=Tahoma color=#006400&gt;return&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma color=#000000&gt;Ok, notice that I have a return statement after the first select. That is my exit point for now because I am debugging so I am not interested in the section after that. Also notice that the update statement will throw an error like so:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#006400 size=2&gt;Disallowed implicit conversion from data type datetime to data type int, table 'tempdb.dbo.#t1_________________________________________________________________________________________________________________000100004066', column 'col3'. Use the CONVERT function to run this query.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;Now, logically if I run my stored procedure, I know that I will return after the first select statement and I should not get a runtime error at all, but what really happens, is that executing the stored proc throws an error at runtime on a block of code that will never be run! Go figure!&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The obvious solution is to either comment out the offending code, or to fix it first before running the SP.&lt;/P&gt;&lt;img src="http://geekswithblogs.net/shailensukul/aggbug/77518.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/shailensukul/comments/77518.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/shailensukul/comments/commentRss/77518.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/shailensukul/services/trackbacks/77518.aspx</trackback:ping>
    </entry>
    <entry>
        <title>XML attributes may not be specified for the type - Serialization Error</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/shailensukul/archive/2006/04/07/74603.aspx" />
        <id>http://geekswithblogs.net/shailensukul/archive/2006/04/07/74603.aspx</id>
        <published>2006-04-07T22:47:00-05:00:00</published>
        <updated>2006-04-07T22:47:00Z</updated>
        <content type="html">&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face=Arial size=5&gt;"XML attributes may not be specified for the type"&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;FONT face=Arial size=4&gt;XmlSerializer and CollectionBase derived classes&lt;/FONT&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;I get this error when I try to serialize an object that is based upon the CollectionBase class and has an XmlRoot attribute.&lt;BR&gt;&lt;BR&gt;The solution is to provide hints in the Serialization method to add a defined root in the generated XML. Thanks to user "armanddp" &lt;A href="http://dotnet.org.za/armand/archive/2004/09/21/4164.aspx"&gt;http://dotnet.org.za/armand/archive/2004/09/21/4164.aspx&lt;/A&gt;, I have beautified his solution as shown below:&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;U&gt;Step 1: &lt;/U&gt;Create an attribute class that you can use to specifiy the root attribute.&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;[AttributeUsage(AttributeTargets.Class)]&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public class XmlRootNameAttribute : Attribute&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public XmlRootNameAttribute()&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{}&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public XmlRootNameAttribute(string name)&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;this.name = name;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public string name = string.Empty;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;BR&gt;&lt;U&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;BR&gt;&lt;U&gt;Step 2: &lt;/U&gt;Add the attribute to your own class.&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;[Serializable]&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;[XmlRootName("StepClassConfigurationCollection")]&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;public class MyCollection : CollectionBase, IList&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{}&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&lt;U&gt;Step 3: &lt;/U&gt;Create a Serializer method to read the extra attribute, if it exists, otherwise serialise as per normal.&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;/// &amp;amp;lt;summary&amp;amp;gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// Serialize the given object into a string&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// &amp;amp;lt;/summary&amp;amp;gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// &amp;amp;lt;param name="o"&amp;amp;gt;&amp;amp;lt;/param&amp;amp;gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// &amp;amp;lt;returns&amp;amp;gt;&amp;amp;lt;/returns&amp;amp;gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public string SerializeObject(object o)&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;string ret = string.Empty;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;Stream writer = new MemoryStream();&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;XmlSerializer ser = null;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;XmlRootAttribute ra = new XmlRootAttribute();&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;Type objectType = o.GetType();&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;// determines if the custom attribute was found&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;bool bAttFound = false;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;ra.Namespace = string.Empty;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;// try and find the custom attribute that will determine the root namespace.&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;object [] oAtt = objectType.GetCustomAttributes(typeof(PMPDO.XmlRootNameAttribute), false);&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;if (oAtt != null)&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;nbsp;if (oAtt.Length &amp;amp;gt; 0) &lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;nbsp;{&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bAttFound = true;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// use the given root name&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ra.ElementName = ((PMPDO.XmlRootNameAttribute)oAtt[0]).name;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;nbsp;}&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;if (!bAttFound)&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;nbsp;// if there is no root name provided, then just use the default&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;nbsp;ser = new XmlSerializer(objectType);&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;else &lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;nbsp;// otherwise use the provided root name&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;nbsp;ser = new XmlSerializer(objectType, ra);&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;XmlSerializerNamespaces ns = new XmlSerializerNamespaces();&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;ns.Add("","");&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;if (bAttFound) &lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;nbsp;// use the given root when provided&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;nbsp;ser.Serialize(writer, o, ns);&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;else &lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;nbsp;// otherwise use the default (no root provided)&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;nbsp;ser.Serialize(writer, o);&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;// read the string from the serialized stream&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;writer.Position = 0;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;StreamReader sr = new StreamReader(writer,System.Text.Encoding.ASCII);&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;ret = sr.ReadToEnd();&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&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;return ret;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;/DIV&gt;&lt;img src="http://geekswithblogs.net/shailensukul/aggbug/74603.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/shailensukul/comments/74603.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/shailensukul/comments/commentRss/74603.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/shailensukul/services/trackbacks/74603.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Logging Block Type Initializer Error</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/shailensukul/archive/2006/04/07/74602.aspx" />
        <id>http://geekswithblogs.net/shailensukul/archive/2006/04/07/74602.aspx</id>
        <published>2006-04-07T22:45:00-05:00:00</published>
        <updated>2006-04-07T22:45:00Z</updated>
        <content type="html">&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face=Arial size=5&gt;MS Logging and Instrumentation Block&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;Error: The type initializer for "Microsoft.Practices.EnterpriseLibrary.Data.Instrumentation.DataConnectionFailedEvent" threw an exception.&lt;BR&gt;&lt;BR&gt;Repeat the following for all the code blocks you are using:&lt;BR&gt;&lt;BR&gt;C:\WINNT\Microsoft.NET\Framework\v1.1.4322\InstallUtil.exe &amp;amp;lt;destinationfolder&amp;amp;gt;\Microsoft.Practices.EnterpriseLibrary.Common.dll&lt;BR&gt;&lt;/DIV&gt;&lt;img src="http://geekswithblogs.net/shailensukul/aggbug/74602.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/shailensukul/comments/74602.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/shailensukul/comments/commentRss/74602.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/shailensukul/services/trackbacks/74602.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Intermittent Web Services Error</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/shailensukul/archive/2006/04/07/74600.aspx" />
        <id>http://geekswithblogs.net/shailensukul/archive/2006/04/07/74600.aspx</id>
        <published>2006-04-07T22:40:00-05:00:00</published>
        <updated>2006-04-07T22:40:00Z</updated>
        <content type="html">&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face=Arial size=5&gt;Intermittent Web Services Error&lt;/FONT&gt;&lt;/STRONG&gt; &lt;BR&gt;&lt;BR&gt;I have a proxy class that performs a large number of calls on a web service. &lt;BR&gt;It fails intermittently with the following error: &lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;System.Net.WebException: &lt;/STRONG&gt;The request failed with HTTP status 401: &lt;BR&gt;Unauthorized. at System.Web.Services.Protocols.SoapHttpClientProtocol. &lt;BR&gt;ReadResponse(SoapClientMessage message, WebResponse response, &lt;BR&gt;Stream responseStream, Boolean asyncCall) &lt;BR&gt;at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke &lt;BR&gt;(String methodName, Object[] parameters) &lt;BR&gt;&lt;BR&gt;To fix this, you should disable the Keep Alive feature on IIS and the proxy class. &lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;FONT face=Arial size=4&gt;Disable Keep Alive in IIS&lt;/FONT&gt;&lt;/EM&gt;&lt;/STRONG&gt; &lt;BR&gt;To disable go to the Web site tab of the Web site properties window and uncheck the Keep Alive options. &lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;FONT face=Arial size=4&gt;Disable Keep Alive in Proxy&lt;/FONT&gt;&lt;/EM&gt;&lt;/STRONG&gt; &lt;BR&gt;You need to override the default handling of WebRequest as shown below: &lt;BR&gt;&lt;BR&gt;protected override System.Net.WebRequest GetWebRequest(Uri uri) &lt;BR&gt;{ &lt;BR&gt;System.Net.HttpWebRequest webRequest = &lt;BR&gt;(System.Net.HttpWebRequest) base.GetWebRequest(uri); &lt;BR&gt;webRequest.KeepAlive = false; &lt;BR&gt;return webRequest; &lt;BR&gt;} &lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;FONT face=Arial size=4&gt;More Information on Keep Alive&lt;/FONT&gt;&lt;/EM&gt;&lt;/STRONG&gt; &lt;BR&gt;Keep alive keeps the connection open across multiple requests. &lt;BR&gt;To find out more, see: &lt;A href="https://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/59e9c2d2-b772-4c43-82f0-e669427eeb89.mspx"&gt;https://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/59e9c2d2-b772-4c43-82f0-e669427eeb89.mspx&lt;/A&gt; &lt;BR&gt;&lt;BR&gt;and &lt;BR&gt;&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemnethttpwebrequestclasskeepalivetopic.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemnethttpwebrequestclasskeepalivetopic.asp&lt;/A&gt;&lt;/DIV&gt;&lt;img src="http://geekswithblogs.net/shailensukul/aggbug/74600.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/shailensukul/comments/74600.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/shailensukul/comments/commentRss/74600.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/shailensukul/services/trackbacks/74600.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Sql Server DTC Error</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/shailensukul/archive/2006/04/07/74599.aspx" />
        <id>http://geekswithblogs.net/shailensukul/archive/2006/04/07/74599.aspx</id>
        <published>2006-04-07T22:38:00-05:00:00</published>
        <updated>2006-04-07T22:38:00Z</updated>
        <content type="html">&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face=Arial size=5&gt;SQL Server DTC Error&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;U&gt;&lt;FONT face=Arial size=2&gt;Error Message: &lt;/FONT&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;Server: Msg 7391, Level 16, State 1, Procedure p_SP1, Line XThe operation could not be performed because the OLE DB provider 'SQLOLEDB' was unable to begin a distributed transaction.[OLE/DB provider returned message: New transaction cannot enlist in the specified transaction coordinator. ]OLE DB error trace [OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a].&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;U&gt;Resolution&lt;/U&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;BR&gt;See &lt;A href="http://support.microsoft.com/default.aspx?scid=kb;en-us;329332"&gt;http://support.microsoft.com/default.aspx?scid=kb;en-us;329332&lt;/A&gt;&lt;BR&gt;and&lt;BR&gt;&lt;A href="http://support.microsoft.com/?kbid=899191"&gt;http://support.microsoft.com/?kbid=899191&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;Here is an excellent explanation from David Adamson&amp;#8217;s blog (&lt;A href="http://www.dotnetjunkies.com/WebLog/daveadamson/archive/2005/11/22/133928.aspx"&gt;http://www.dotnetjunkies.com/WebLog/daveadamson/archive/2005/11/22/133928.aspx&lt;/A&gt;).&lt;/DIV&gt;&lt;img src="http://geekswithblogs.net/shailensukul/aggbug/74599.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/shailensukul/comments/74599.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/shailensukul/comments/commentRss/74599.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/shailensukul/services/trackbacks/74599.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Web Service Inheritance Error</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/shailensukul/archive/2006/04/07/74598.aspx" />
        <id>http://geekswithblogs.net/shailensukul/archive/2006/04/07/74598.aspx</id>
        <published>2006-04-07T22:36:00-05:00:00</published>
        <updated>2006-04-07T22:36:00Z</updated>
        <content type="html">&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face=Arial size=5&gt;Web Service Inheritance Error&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;We have a bunch of web services that are derived from a base web service class.&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;When running one of the derived web services, I got the following error:&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;&amp;#8220;Server did not recognize the value of HTTP Header SOAPAction:&amp;#8221;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;The error was caused by not providing an explicit namespace for the derived web service class. The following attribute fixed the error:&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;[WebService(Namespace="&lt;/FONT&gt;&lt;A href="http://soainterface.pmplimited.com.au/"&gt;someuri&lt;/A&gt;&lt;FONT face=Arial size=2&gt;")]&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;Class DerivedWebService : BaseWebService&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;{&lt;/FONT&gt;&lt;/DIV&gt;&lt;img src="http://geekswithblogs.net/shailensukul/aggbug/74598.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/shailensukul/comments/74598.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/shailensukul/comments/commentRss/74598.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/shailensukul/services/trackbacks/74598.aspx</trackback:ping>
    </entry>
</feed>