<?xml version="1.0" encoding="utf-8"?>
<feed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom">
  <title>Know24.Net</title>
  <link rel="alternate" type="text/html" href="http://www.know24.net/blog/" />
  <link rel="self" href="http://www.know24.net/blog/SyndicationService.asmx/GetAtom" />
  <icon>favicon.ico</icon>
  <updated>2010-04-26T12:26:24.603875-05:00</updated>
  <author>
    <name>Know24.net</name>
  </author>
  <subtitle>Tips &amp; Tricks &amp; Tutorials</subtitle>
  <id>http://www.know24.net/blog/</id>
  <generator uri="http://www.dasblog.net" version="1.9.7067.0">DasBlog</generator>
  <entry>
    <title>ASP.NET HTTP 301 Redirect</title>
    <link rel="alternate" type="text/html" href="http://www.know24.net/blog/ASPNET+HTTP+301+Redirect.aspx" />
    <id>http://www.know24.net/blog/PermaLink,guid,82c577c9-7b6f-4eff-9702-f8e48dd5025a.aspx</id>
    <published>2010-04-26T12:26:24.603875-05:00</published>
    <updated>2010-04-26T12:26:24.603875-05:00</updated>
    <category term="ASP.NET 2" label="ASP.NET 2" scheme="http://www.know24.net/blog/CategoryView,category,ASP.NET%2B2.aspx" />
    <category term="CSharp / C#" label="CSharp / C#" scheme="http://www.know24.net/blog/CategoryView,category,CSharp%2B%2f%2BC%23.aspx" />
    <category term="VS2008" label="VS2008" scheme="http://www.know24.net/blog/CategoryView,category,VS2008.aspx" />
    <content type="html">We recently migrated a clients domain from domainA.com to domainB.com.&lt;br&gt;
If you are familiar with search engines and indexing, migrated domains that do not
have proper 301 redirects pointing from the old domain to the new will cause the new
domain to miss a lot of search engine traffic. The new domain will in fact have to
start all over again and get re-indexed by search engines which can take months.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;How do you prevent this? &lt;/b&gt;
&lt;br&gt;
Simple, setup a global HTTP 301 url redirect on your old domain.&lt;br&gt;
Any requests to the old domain will be redirected permanently to the new domain, including
the path and query so that your new domain gets all the traffic the new domain would.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Why use a HTTP 301 redirect?&lt;/b&gt;
&lt;br&gt;
Well, by doing a 301 redirect, any search engines following the redirect would remember
that you want to permanently update your link. This way the SE will update its records
and by doing this your domain's current rankings will be better maintained.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;How do you implement a global HTTP 301 redirect?&lt;/b&gt;
&lt;br&gt;
In ASP.NET, it requires editing the global.asax's application_beginrequest event. 
&lt;br&gt;
See the code sample below:&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;
&lt;meta name="ProgId" content="Word.Document"&gt;
&lt;meta name="Generator" content="Microsoft Word 11"&gt;
&lt;meta name="Originator" content="Microsoft Word 11"&gt;
&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
 &lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" LatentStyleCount="156"&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt;
&lt;!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 90.0pt 72.0pt 90.0pt;
	mso-header-margin:35.4pt;
	mso-footer-margin:35.4pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;
&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
&lt;/style&gt;
&lt;![endif]--&gt;
&lt;p class="MsoNormal" style=""&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;protected&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; Application_BeginRequest(Object
sender, EventArgs e)&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style=""&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style=""&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;//
url exists?&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style=""&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (Request.Url
!= &lt;span style="color: blue;"&gt;null&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style=""&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style=""&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;//
301-redirect for domainA.com to DomainB.com&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style=""&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;string&lt;/span&gt; key
= &lt;span style="color: rgb(163, 21, 21);"&gt;"domainA.com"&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style=""&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (Request.Url.Host.ToLower().Contains(key)
== &lt;span style="color: blue;"&gt;true&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style=""&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style=""&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&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;/span&gt;Response.ClearHeaders();&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style=""&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&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;/span&gt;Response.Status
= &lt;span style="color: rgb(163, 21, 21);"&gt;"301 Moved Permanently"&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style=""&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&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;/span&gt;Response.AddHeader(&lt;span style="color: rgb(163, 21, 21);"&gt;"Location"&lt;/span&gt;, &lt;span style="color: rgb(163, 21, 21);"&gt;"http://www.domainB.com"&lt;/span&gt; +
Request.Url.PathAndQuery);&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style=""&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&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;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style=""&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style=""&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;
&lt;/p&gt;
&lt;br&gt;
So for example if we receive an incoming url on http://domainA.com/product.aspx?id=5
, this will redirected to 
&lt;br&gt;
http://domainB.com/product.aspx?id=5. 
&lt;br&gt;
Search engine's will update their links and your site will benefit from a good amount
of traffic from your old domain.&lt;br&gt;
&lt;br&gt;
Hope this helps you!&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.know24.net/blog/aggbug.ashx?id=82c577c9-7b6f-4eff-9702-f8e48dd5025a" /&gt;</content>
  </entry>
  <entry>
    <title>HTTP Compression</title>
    <link rel="alternate" type="text/html" href="http://www.know24.net/blog/HTTP+Compression.aspx" />
    <id>http://www.know24.net/blog/PermaLink,guid,9d0deb4a-fbd1-4d3e-b34c-1459aff66a6a.aspx</id>
    <published>2010-04-18T18:05:00.493875-05:00</published>
    <updated>2010-04-18T18:05:00.493875-05:00</updated>
    <category term="IIS" label="IIS" scheme="http://www.know24.net/blog/CategoryView,category,IIS.aspx" />
    <content type="html">&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;
&lt;meta name="ProgId" content="Word.Document"&gt;
&lt;meta name="Generator" content="Microsoft Word 11"&gt;
&lt;meta name="Originator" content="Microsoft Word 11"&gt;
&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"&gt;
&lt;link rel="Edit-Time-Data" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_editdata.mso"&gt;
&lt;!--[if !mso]&gt;
&lt;style&gt;
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
&lt;/style&gt;
&lt;![endif]--&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
 &lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" LatentStyleCount="156"&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt;
&lt;!--
 /* Font Definitions */
 @font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;
	mso-font-charset:2;
	mso-generic-font-family:auto;
	mso-font-pitch:variable;
	mso-font-signature:0 268435456 0 0 -2147483648 0;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:1627421319 -2147483648 8 0 66047 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;
	text-underline:single;}
p
	{mso-margin-top-alt:auto;
	margin-right:0cm;
	mso-margin-bottom-alt:auto;
	margin-left:0cm;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 90.0pt 72.0pt 90.0pt;
	mso-header-margin:35.4pt;
	mso-footer-margin:35.4pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
 /* List Definitions */
 @list l0
	{mso-list-id:265773248;
	mso-list-template-ids:1727045154;}
@list l0:level1
	{mso-level-tab-stop:36.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
ol
	{margin-bottom:0cm;}
ul
	{margin-bottom:0cm;}
--&gt;
&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
&lt;/style&gt;
&lt;![endif]--&gt;
&lt;p class="MsoNormal"&gt;
&lt;b style=""&gt;&lt;span style="font-family: Tahoma;"&gt;HTTP Compression: &lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Tahoma;"&gt;
&lt;br&gt;
&lt;br&gt;
HTTP compression is a capability that is built into web servers and web browsers to
make better use of available bandwidth, and provide faster transmission speeds between
both. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;HTTP data is compressed before it is sent from
the server: compliant browsers will announce what methods are supported to the server
before downloading the correct format; unsupported browsers will download uncompressed
data so enabling HTTP compression does not prevent older browsers from viewing the
Html content. 
&lt;br&gt;
&lt;br&gt;
&lt;b style=""&gt;Benefits of HTTP Compression:&lt;o:p&gt;&lt;/o:p&gt;
&lt;/b&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;Let’s say we are working with a 100KByte Html page. 
&lt;br&gt;
This page is hosted on our clients website and when it’s served to a browser, the
browser downloads 100BKytes.&lt;br&gt;
If our upstream bandwidth is limited to 100Kbytes a second, this means that we can
serve 1 of these pages to a 1 browser every second. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;If we use HTTP Compression, we can compress the
page to 30Kbytes and what this means is that we can now serve 3 compressed pages to
three browsers in 1 second. 
&lt;br&gt;
Not only that, users downloading compressed Html will experience a smoother/faster
user experience.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;The final benefit is that your monthly bandwidth
costs are reduced by around 60%. 
&lt;br style=""&gt;
&lt;!--[if !supportLineBreakNewLine]--&gt;
&lt;br style=""&gt;
&lt;!--[endif]--&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;b style=""&gt;&lt;span style="font-family: Tahoma;"&gt;Server Impact:&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/b&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;When configuring HTTP Compression on any server
one needs to keep in mind that compressing anything adds to the server load. 
&lt;br&gt;
If the server is already running at a high average load then it is not recommended
to enable HTTP compression.&lt;br style=""&gt;
&lt;!--[if !supportLineBreakNewLine]--&gt;
&lt;br style=""&gt;
&lt;!--[endif]--&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;After enabling compression one must monitor the
server and if the load and depending on the server OS you are running, configure the
HTTP Compression settings to adjust to the load. 
&lt;br&gt;
In Windows Server 2003 you can fine tune your compression settings so that at times
of high load the server will stop serving compressed content. 
&lt;br style=""&gt;
&lt;!--[if !supportLineBreakNewLine]--&gt;
&lt;br style=""&gt;
&lt;!--[endif]--&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;b style=""&gt;&lt;span style="font-family: Tahoma;"&gt;Types of HTTP Compression:&lt;br&gt;
&lt;br&gt;
&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Tahoma;"&gt;There are two forms of compression;
Static and Dynamic.&lt;br&gt;
&lt;br&gt;
Static compression is the compression of static web pages such as .Html, .Js and cascading
style sheets.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;Static compression only compresses static content
once and then it moves the statically compressed file to a cache folder and serves
it from there. 
&lt;br&gt;
Even if your server is under high load, compressing static content will not increase
your server load as it just compresses static content once.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;Dynamic compression is the compression of dynamically
generated web pages such as those served by ASP, PHP enabled servers. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;Unlike static compression, dynamic compression
needs to compress each and every page each time the page is served; hence dynamic
compression can increase the server load, especially on very busy servers.&lt;b style=""&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/b&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;
&lt;br&gt;
&lt;b style=""&gt;Configuring HTTP Compression on Windows 2003 Server:&lt;br&gt;
&lt;br&gt;
&lt;/b&gt;Microsoft never completed their GUI for IIS to enable dynamic compression.&lt;br&gt;
Microsoft instead requires you to edit the IIS meta-base file which is rather dangerous
for the average user to do.&lt;br&gt;
Fortunately there is a good tool by a company called Port80 that I’ve used with success
that allows the configuration of Windows 2003 Server.&lt;br style=""&gt;
&lt;!--[if !supportLineBreakNewLine]--&gt;
&lt;br style=""&gt;
&lt;!--[endif]--&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;The name of the tool is ZipEnable for IIS. 
&lt;br&gt;
This tool allows you to configure static and dynamic compression site server wide
or on the website level.&lt;br&gt;
Further you can set the compression strength and define a CPU load value where compression
will no longer be performed along with a host of other features.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b style=""&gt;Configuring HTTP Compression on Windows 2008 Server:&lt;o:p&gt;&lt;/o:p&gt;
&lt;/b&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;HTTP Compression support was adequately integrated
into a GUI within Windows Server 2008.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;
&lt;br&gt;
To enable support for dynamic and static compression, do the following:&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;ol start="1" type="1"&gt;
&lt;li class="MsoNormal" style=""&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;On the taskbar, click &lt;b&gt;Start&lt;/b&gt;,
point to &lt;b&gt;Administrative Tools&lt;/b&gt;, and then click &lt;b&gt;Server Manager&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/li&gt;
&lt;li class="MsoNormal" style=""&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;In the &lt;b&gt;Server Manager&lt;/b&gt; hierarchy
pane, expand &lt;b&gt;Roles&lt;/b&gt;, and then click &lt;b&gt;Web Server (IIS)&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/li&gt;
&lt;li class="MsoNormal" style=""&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;In the &lt;b&gt;Web Server (IIS)&lt;/b&gt; pane,
scroll to the &lt;b&gt;Role Services&lt;/b&gt; section, and then click &lt;b&gt;Add Role Services&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/li&gt;
&lt;li class="MsoNormal" style=""&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;On the &lt;b&gt;Select Role Services&lt;/b&gt; page
of the &lt;b&gt;Add Role Services Wizard&lt;/b&gt;, select &lt;b&gt;Dynamic&lt;/b&gt; &lt;b&gt;Content Compression&lt;/b&gt; if
you want to install dynamic compression and &lt;b&gt;Static Content Compression&lt;/b&gt; if you
want to install static compression, and then click &lt;b&gt;Next&lt;/b&gt;.&lt;/span&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ol start="5" type="1"&gt;
&lt;li class="MsoNormal" style=""&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;On the &lt;b&gt;Confirm Installation
Selections&lt;/b&gt; page, click &lt;b&gt;Install&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/li&gt;
&lt;li class="MsoNormal" style=""&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;On the &lt;b&gt;Results&lt;/b&gt; page, click &lt;b&gt;Close&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;
&lt;br&gt;
Once the HTTP compression features have been installed you can now open IIS Manager
(Start &lt;/span&gt;&lt;span style="font-family: Wingdings;"&gt;&lt;span style=""&gt;à&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Tahoma;"&gt; Run &lt;/span&gt;&lt;span style="font-family: Wingdings;"&gt;&lt;span style=""&gt;à&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Tahoma;"&gt; inetmgr)
and browse to the website you have decided to test HTTP compression on.&lt;br&gt;
&lt;br&gt;
Select your website and double click the Compression icon under the IIS heading.&lt;br&gt;
The Compression page will display check boxes next to Static and Dynamic compression.
Check both these boxes and click apply.&lt;br&gt;
&lt;br&gt;
Finally, to test if your web pages are being served as compressed test them on this
webpage &lt;/span&gt;&lt;span style="font-family: Wingdings;"&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Tahoma;"&gt;&lt;a href="http://www.port80software.com/products/zipenable/compresscheck.asp"&gt;http://www.port80software.com/products/zipenable/compresscheck.asp&lt;/a&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;This website will read the HTTP headers and determine
if your webpage is compressed and give you the exact compressed and uncompressed HTML
values.&lt;br&gt;
&lt;br&gt;
&lt;br style=""&gt;
&lt;!--[if !supportLineBreakNewLine]--&gt;
&lt;br style=""&gt;
&lt;!--[endif]--&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;
&lt;br&gt;
&lt;br style=""&gt;
&lt;!--[if !supportLineBreakNewLine]--&gt;
&lt;br style=""&gt;
&lt;!--[endif]--&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-family: Tahoma;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.know24.net/blog/aggbug.ashx?id=9d0deb4a-fbd1-4d3e-b34c-1459aff66a6a" /&gt;</content>
  </entry>
  <entry>
    <title>ASP.NET Google Product Feed</title>
    <link rel="alternate" type="text/html" href="http://www.know24.net/blog/ASPNET+Google+Product+Feed.aspx" />
    <id>http://www.know24.net/blog/PermaLink,guid,ba7a894d-fd7c-4550-aa2b-d56a6358d65f.aspx</id>
    <published>2010-02-11T09:33:28.865375-06:00</published>
    <updated>2010-02-11T09:33:28.865375-06:00</updated>
    <category term="CSharp / C#" label="CSharp / C#" scheme="http://www.know24.net/blog/CategoryView,category,CSharp%2B%2f%2BC%23.aspx" />
    <category term="VS2008" label="VS2008" scheme="http://www.know24.net/blog/CategoryView,category,VS2008.aspx" />
    <category term="Linq" label="Linq" scheme="http://www.know24.net/blog/CategoryView,category,Linq.aspx" />
    <category term="Xml" label="Xml" scheme="http://www.know24.net/blog/CategoryView,category,Xml.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">My client required a google product feed
representing their store products, so I decided to make use of Linq-to-Xml to generate
the Xml markup and Linq-to-Objects to retrieve my product data.<br />
Initially I had my doubts about using Linq, however, since seeing how efficient and
clean the code was compared to using XPath, I'm now a believer ;)<br /><br />
Here is the code. Copy and paste this into a Test.aspx page.<br />
Note that you'll need an object collection of your products to quickly re-use this
code. This can be a generic List&lt;Product&gt; too.<br />
I've loaded my product collection at the top of the Page_Load event. Replace this
with your own and update the elements with your product collection properties.<br /><br /><pre style="font-size: 11px; font-family: Courier New;"><span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;">&lt;%@
Page Language=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"C#"</span> AutoEventWireup=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"true"</span>%&gt;<br />
&lt;%@ Import Namespace=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"System.Xml"</span>%&gt;<br />
&lt;%@ Import Namespace=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"System.Linq"</span>%&gt;<br />
&lt;%@ Import Namespace=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"System.Xml.Linq"</span>%&gt;<br /><br />
&lt;script runat=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"server"</span>&gt;<br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">protected</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">void</span> Page_Load(<span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">object</span> sender,
EventArgs e)<br />
{<br /></span><span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"><span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"> //
load your product collection here</span></span><span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"><br />
ProductCollection pc <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">=</span> ProductCollection.Load(<span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">false</span>);<br /><br />
XNamespace g <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">=</span><span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"http://base.google.com/ns/1.0"</span>;<br /><br />
XDocument doc <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">=</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">new</span> XDocument(<br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">new</span> XDeclaration(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"1.0"</span>, <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">null</span>, <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">null</span>), 
<br /><span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;">//new
XComment("Sample RSS Feed"),</span><br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">new</span> XElement(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"rss"</span>,<br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">new</span> XAttribute(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"version"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"2.0"</span>),<br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">new</span> XAttribute(XNamespace.Xmlns <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">+</span><span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"g"</span>,
g), <span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;">//"http://base.google.com/ns/1.0"</span><br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">new</span> XElement(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"channel"</span>,<br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">new</span> XElement(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"title"</span>,
"eStore Products for XYZ"),<br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">new</span> XElement(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"link"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"http://"</span><span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">+</span> Request.Url.Host),<br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">new</span> XElement(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"description"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Products
available at our store."</span>),<br />
from product <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">in</span> pc<br />
orderby product.Name ascending<br />
select <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">new</span> XElement(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"item"</span>,<br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">new</span> XElement(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"title"</span>,
product.Name),<br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">new</span> XElement(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"link"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"http://"</span><span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">+</span> Request.Url.Host <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">+</span> RouteHelper.Parse(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"/product.aspx?ProductID="</span><span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">+</span> product.ID)),<br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">new</span> XElement(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"description"</span>,
product.Description),<br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">new</span> XElement(g <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">+</span><span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"image_link"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"http://"</span><span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">+</span> Request.Url.Host <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">+</span> product.DefaultImage <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">+</span> CustomImage.Get80x80), 
<br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">new</span> XElement(g <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">+</span><span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"price"</span>,
product.Price) 
<br />
) 
<br />
)<br />
)<br />
);<br /><br /></span><span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"><span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"> //
save Xml output to website/app root folder</span></span><br /><span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"> doc.Save(Server.MapPath(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"~/"</span>) <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">+</span><span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"products.xml"</span>,
SaveOptions.None);<br /><br /><span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;">//
debug to html</span><br /><span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;">//
Response.Write(new XDeclaration("1.0", null, null).ToString() + "\r\n" + doc.ToString());</span><br />
} 
<br />
&lt;/script&gt;</span><br /></pre><br />
Call your Test.aspx page and your Xml will get generated. 
<br />
In case you're confused about the XNamespace, basically we are using this to create
special Google Product Feed Xml element name, but that is a topic for another article.
All we need to know is that its necessary to build elements that contain the colon
(:) character.<br /><br />
Happy coding.<br /><br /><br /><p></p><img width="0" height="0" src="http://www.know24.net/blog/aggbug.ashx?id=ba7a894d-fd7c-4550-aa2b-d56a6358d65f" /></div>
    </content>
  </entry>
  <entry>
    <title>Quick guide for migrating IIS6 applications to IIS7</title>
    <link rel="alternate" type="text/html" href="http://www.know24.net/blog/Quick+Guide+For+Migrating+IIS6+Applications+To+IIS7.aspx" />
    <id>http://www.know24.net/blog/PermaLink,guid,be88c14a-6a30-4483-98fd-738f69b498ed.aspx</id>
    <published>2009-10-23T07:35:20.637-05:00</published>
    <updated>2009-10-23T07:36:57.544-05:00</updated>
    <category term="IIS" label="IIS" scheme="http://www.know24.net/blog/CategoryView,category,IIS.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">Okay, assuming your website is up and you
launch your webpage, you're likely to get a server 500 error. 
<br />
If you're running Vista you will be provided with more details of the 500 error, however,
if you're running 2008 Server then there is a distinct possibility you will receive
no further information.<br />
Note: this method will not make use of II7 integration mode, instead it will be running
your website under IIS6 compatibility mode for IIS7.<br /><br /><b>Step 1:</b><br /><br />
II7 doesnt support the the traditional web.config file. You have to convert it. Here
is how.<br />
Open a new console window. 
<br /><font size="1"><b><font face="Tahoma">%systemroot%\system32\inetsrv\appcmd.exe migrate
config "website/virtual-directory"</font></b></font><br /><br />
This is an example if you're web.config is in your website root.<br /><b><font face="Tahoma" size="1">c:\windows\system32\inetsrv\appcmd.exe migrate config
"mywebsite/"</font><br /></b><br />
This is an example if you're web.config is in virtual directory called "myvirtualdir"
within your website.<br /><font size="1"><b><font face="Tahoma">c:\windows\system32\inetsrv\appcmd.exe migrate
config "mywebsite/myvirtualdir"</font></b></font><br /><br /><b>Step 2: </b><br /><br />
If you browse your webpage now you will likely get the error "System.Web.HttpException:
Request is not available in this context".<br />
To resolve this, you need to switch your application pool to use the classic .Net
application pool. 
<br /><br />
Go to IIS management, select your website and on the Actions frame click Basic Settings. 
<br />
Change your Application Pool to use Classic .NET AppPool, click OK and your're sorted.<br /><br /><br />
Thats it. If you decide that you need to run your application in IIS7 integration
mode later, investigate the changes you need to make within your web.config which
complies with the IIS7 requirements to run in integration mode.<br /><br /><br /><br /><p></p><img width="0" height="0" src="http://www.know24.net/blog/aggbug.ashx?id=be88c14a-6a30-4483-98fd-738f69b498ed" /></div>
    </content>
  </entry>
  <entry>
    <title>StreamWriter adding FFFE prefix</title>
    <link rel="alternate" type="text/html" href="http://www.know24.net/blog/StreamWriter+Adding+FFFE+Prefix.aspx" />
    <id>http://www.know24.net/blog/PermaLink,guid,8a9fc7d2-264f-4d5c-a7eb-7816c3cd159d.aspx</id>
    <published>2009-08-07T10:35:46.448875-05:00</published>
    <updated>2009-08-07T10:35:46.448875-05:00</updated>
    <category term="CSharp / C#" label="CSharp / C#" scheme="http://www.know24.net/blog/CategoryView,category,CSharp%2B%2f%2BC%23.aspx" />
    <content type="html">I ran into a problem today when writing an output file which kept containing the prefix FFFE when viewed in a hexadecimal editor.&lt;br&gt;
This prefix was in my source file and attempts to remove it with String.Replace where
fruitless.&lt;br&gt;
The FFFE prefix was only visible in a file and not within the Visual Studio debugging
environment. 
&lt;br&gt;
&lt;br&gt;
So I started investigating. 
&lt;br&gt;
&lt;br&gt;
Unicode contains a byte order mark (BOM) prefix which defines the byte order of your
unicode file.&lt;br&gt;
FFFE = Little Endian&lt;br&gt;
FEFF = Big Endian 
&lt;br&gt;
&lt;br&gt;
So I attempted to parse these characters by setting the UTF8 encoding param when instantiating
my StreamWriter. 
&lt;br&gt;
No luck.&lt;br&gt;
&lt;br&gt;
The solution was to instead define a custom UnicodeEncoding and disable both Big and
Little Endian byte order marks.&lt;br&gt;
You do this by defining a custom UnicodeEncoding type as the encoding parameter in
StreamWriter. 
&lt;br&gt;
&lt;br&gt;
Here is the code.&lt;br&gt;
&lt;br&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;
&lt;meta name="ProgId" content="Word.Document"&gt;
&lt;meta name="Generator" content="Microsoft Word 11"&gt;
&lt;meta name="Originator" content="Microsoft Word 11"&gt;
&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
 &lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" LatentStyleCount="156"&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt;
&lt;!--
 /* Font Definitions */
 @font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1073750139 0 0 159 0;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:modern;
	mso-font-pitch:fixed;
	mso-font-signature:-1610611985 1073750091 0 0 159 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:10.0pt;
	margin-left:0cm;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:Calibri;
	mso-fareast-font-family:Calibri;
	mso-bidi-font-family:"Times New Roman";}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 90.0pt 72.0pt 90.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;
&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
&lt;/style&gt;
&lt;![endif]--&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;
&lt;span style="font-size: 10pt; font-family: Consolas; color: rgb(0, 145, 72);"&gt;// open
our input file&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: rgb(43, 145, 175);"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: rgb(43, 145, 175);"&gt;StreamReader&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; readerEDI
= &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;StreamReader&lt;/span&gt;(&lt;span style="color: rgb(163, 21, 21);"&gt;@"input.txt"&lt;/span&gt;);&lt;span style="color: green;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: rgb(43, 145, 175);"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;
&lt;span style="font-size: 10pt; font-family: Consolas; color: rgb(0, 145, 72);"&gt;// setup
custom unicode encoding, disable big and little endian bom's&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: rgb(43, 145, 175);"&gt;UnicodeEncoding&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; unicode
= &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;UnicodeEncoding&lt;/span&gt;(&lt;span style="color: blue;"&gt;false&lt;/span&gt;, &lt;span style="color: blue;"&gt;false&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: rgb(43, 145, 175);"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;
&lt;span style="font-size: 10pt; font-family: Consolas; color: rgb(0, 145, 72);"&gt;// output
file stream&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: rgb(43, 145, 175);"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: rgb(43, 145, 175);"&gt;Stream&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; filestream
= &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;FileStream&lt;/span&gt;(&lt;span style="color: rgb(163, 21, 21);"&gt;@"output"&lt;/span&gt;, &lt;span style="color: rgb(43, 145, 175);"&gt;FileMode&lt;/span&gt;.CreateNew);&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: rgb(43, 145, 175);"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;
&lt;span style="font-size: 10pt; font-family: Consolas; color: rgb(0, 145, 72);"&gt;// instantiate
new streamwriter, apply our custom unicode encoding 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: rgb(43, 145, 175);"&gt;StreamWriter&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; writerEDI
= &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;StreamWriter&lt;/span&gt;(filestream,
unicode);&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;
&lt;span style="font-size: 10pt; font-family: Consolas; color: rgb(0, 145, 72);"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;
&lt;span style="font-size: 10pt; font-family: Consolas; color: rgb(0, 145, 72);"&gt;// write
to file&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;writerEDI.Write(readerEDI.ReadToEnd());&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: green;"&gt;//
clean up&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;readerEDI.Close();&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;writerEDI.Close();&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.know24.net/blog/aggbug.ashx?id=8a9fc7d2-264f-4d5c-a7eb-7816c3cd159d" /&gt;</content>
  </entry>
  <entry>
    <title>JScript AutoSuggest Control</title>
    <link rel="alternate" type="text/html" href="http://www.know24.net/blog/JScript+AutoSuggest+Control.aspx" />
    <id>http://www.know24.net/blog/PermaLink,guid,9b10ee7f-e85f-4df1-9d08-4ffd2e8bc97d.aspx</id>
    <published>2009-08-03T06:58:13.82825-05:00</published>
    <updated>2009-08-03T06:58:13.82825-05:00</updated>
    <category term="VS2008" label="VS2008" scheme="http://www.know24.net/blog/CategoryView,category,VS2008.aspx" />
    <content type="html">&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"&gt;
&lt;link rel="Edit-Time-Data" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_editdata.mso"&gt;
&lt;!--[if !mso]&gt;
&lt;style&gt;
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;font face="Tahoma"&gt;
&lt;o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="City"&gt;&lt;/o:smarttagtype&gt;
&lt;o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="place"&gt;&lt;/o:smarttagtype&gt;
&lt;/font&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
 &lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" LatentStyleCount="156"&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;!--[if !mso]&gt;&lt;object
 classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui&gt;&lt;/object&gt;
&lt;style&gt;
st1\:*{behavior:url(#ieooui) }
&lt;/style&gt;
&lt;![endif]--&gt;&lt;style&gt;
&lt;!--
 /* Font Definitions */
 @font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;
	mso-font-charset:2;
	mso-generic-font-family:auto;
	mso-font-pitch:variable;
	mso-font-signature:0 268435456 0 0 -2147483648 0;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:1627421319 -2147483648 8 0 66047 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;
	text-underline:single;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 90.0pt 72.0pt 90.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
 /* List Definitions */
 @list l0
	{mso-list-id:460419038;
	mso-list-type:hybrid;
	mso-list-template-ids:-2100000770 67698707 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-number-format:roman-upper;
	mso-level-tab-stop:27.0pt;
	mso-level-number-position:right;
	margin-left:27.0pt;
	text-indent:-9.0pt;}
@list l1
	{mso-list-id:682512049;
	mso-list-type:hybrid;
	mso-list-template-ids:-1095077934 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
	{mso-level-tab-stop:36.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
ol
	{margin-bottom:0cm;}
ul
	{margin-bottom:0cm;}
--&gt;
&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;font face="Tahoma"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt; 
&lt;p class="MsoNormal"&gt;
&lt;font face="Tahoma"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;A fast, lightweight,
easy to integrate auto-suggestion box powered by javascript and wrapped in an easy
to use ASPx user control.&lt;br style=""&gt;
&lt;!--[if !supportLineBreakNewLine]--&gt;
&lt;br style=""&gt;
&lt;!--[endif]--&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;font face="Tahoma"&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Features: 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ol style="margin-top: 0cm;" start="1" type="1"&gt;
&lt;li class="MsoNormal" style=""&gt;
&lt;font face="Tahoma"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Populate any
text box with suggestions offline (embedded array) or online (&lt;st1:city w:st="on"&gt;
&lt;st1:place w:st="on"&gt;AJAX&lt;/st1:place&gt;
&lt;/st1:city&gt;
).&lt;/span&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;li class="MsoNormal" style=""&gt;
&lt;font face="Tahoma"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Supports multiple
suggestions via a comma deliminator.&lt;br&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;li class="MsoNormal" style=""&gt;
&lt;font face="Tahoma"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Quick and
easy to integrate into your project.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;li class="MsoNormal" style=""&gt;
&lt;font face="Tahoma"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Compatible
with all major browsers and supported by the author.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="MsoNormal"&gt;
&lt;font face="Tahoma"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;font face="Tahoma"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;
&lt;!--[if gte vml 1]&gt;&lt;v:shapetype
 id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
 path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;
 &lt;v:stroke joinstyle="miter"/&gt;
 &lt;v:formulas&gt;
  &lt;v:f eqn="if lineDrawn pixelLineWidth 0"/&gt;
  &lt;v:f eqn="sum @0 1 0"/&gt;
  &lt;v:f eqn="sum 0 0 @1"/&gt;
  &lt;v:f eqn="prod @2 1 2"/&gt;
  &lt;v:f eqn="prod @3 21600 pixelWidth"/&gt;
  &lt;v:f eqn="prod @3 21600 pixelHeight"/&gt;
  &lt;v:f eqn="sum @0 0 1"/&gt;
  &lt;v:f eqn="prod @6 1 2"/&gt;
  &lt;v:f eqn="prod @7 21600 pixelWidth"/&gt;
  &lt;v:f eqn="sum @8 21600 0"/&gt;
  &lt;v:f eqn="prod @7 21600 pixelHeight"/&gt;
  &lt;v:f eqn="sum @10 21600 0"/&gt;
 &lt;/v:formulas&gt;
 &lt;v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/&gt;
 &lt;o:lock v:ext="edit" aspectratio="t"/&gt;
&lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:5in;
 height:286.5pt'&gt;
 &lt;v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image001.png"
  o:title=""/&gt;
&lt;/v:shape&gt;&lt;![endif]--&gt;
&lt;!--[if !vml]--&gt;&lt;img src="http://www.know24.net/blog/images/articles/autosuggest.example.png"&gt;
&lt;br&gt;
&lt;!--[endif]--&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;font face="Tahoma"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;font face="Tahoma"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;font face="Tahoma"&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Where
to use this:&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-left: 27pt; text-indent: -27pt;"&gt;
&lt;!--[if !supportLists]--&gt;&lt;font face="Tahoma"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;span style=""&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;I.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Can
be integrated into search pages, i.e. user-search, country-search.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;!--[endif]--&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-left: 27pt; text-indent: -27pt;"&gt;
&lt;!--[if !supportLists]--&gt;&lt;font face="Tahoma"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;span style=""&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;II.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Where
you once had a drop down with 200+ items, you can now use an auto-suggest enabled
textbox instead.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;!--[endif]--&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-left: 27pt; text-indent: -27pt;"&gt;
&lt;!--[if !supportLists]--&gt;&lt;font face="Tahoma"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;span style=""&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;III.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Potential
to run multiple searches by using comma’s to separate each query.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;!--[endif]--&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-left: 27pt; text-indent: -27pt;"&gt;
&lt;!--[if !supportLists]--&gt;&lt;font face="Tahoma"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;span style=""&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;IV.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Useful
for use in contact forms when you need to notify or email many users.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;!--[endif]--&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;font face="Tahoma"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;font face="Tahoma"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;font face="Tahoma"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;I’ve setup
a demo which contains a user control TextAutoSuggest which does all the work. All
you need to do is focus on loading the control’s DataSource property with a List&amp;lt;of-strings&amp;gt;
from which ever source you choose and then call the controls Databind() method. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;font face="Tahoma"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;font face="Tahoma"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;View demo: &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Wingdings;"&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;font color="#0000ff"&gt;&lt;a href="../demos/AutoSuggest/"&gt;http://www.know24.net/demos/AutoSuggest/&lt;/a&gt;&lt;/font&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;font face="Tahoma"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Download the
source:&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Wingdings;"&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;a href="../downloads/source/AutoSuggest.zip"&gt;Http://www.know24.net/downloads/source/AutoSuggest.zip&lt;/a&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;font face="Tahoma"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;font face="Tahoma"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;The included
auto suggestion control is powered by Dmitry Khudorozhkov’s auto-suggest java script.&lt;br&gt;
For more info see&lt;span style=""&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Wingdings;"&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;a href="http://www.codeproject.com/KB/scripting/AutoSuggestControl.aspx"&gt;http://www.codeproject.com/KB/scripting/AutoSuggestControl.aspx&lt;/a&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.know24.net/blog/aggbug.ashx?id=9b10ee7f-e85f-4df1-9d08-4ffd2e8bc97d" /&gt;</content>
  </entry>
  <entry>
    <title>Key not valid for use in specified state</title>
    <link rel="alternate" type="text/html" href="http://www.know24.net/blog/Key+Not+Valid+For+Use+In+Specified+State.aspx" />
    <id>http://www.know24.net/blog/PermaLink,guid,c4bb5f90-ba00-4968-9aa4-96253654e3de.aspx</id>
    <published>2009-07-07T08:18:10.058-05:00</published>
    <updated>2009-07-07T08:36:46.3865-05:00</updated>
    <category term="VS2005" label="VS2005" scheme="http://www.know24.net/blog/CategoryView,category,VS2005.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">I installed 2003 server on my laptop and
ran it using the Administrator account. 
<br />
I opened old projects and attempted to update my dataset via the standard VS data
set generator tool and got slapped with <b>"Key not valid for use in specified state"</b>. 
<br /><br /><b>The problem?</b><br />
I searched for some solutions with little luck. Eventually the problem appeared to
be due to <span style="font-size: 10pt; color: rgb(255, 102, 0); font-family: Verdana;">DPAPI</span>.<br />
What appears to have happened is that with the re-install the DPAPI information associated
with my Data Connection was no longer valid. 
<br />
The DataSet would open, verify the Data Connection used to create it and fail due
to the DPAPI key being invalid. 
<br /><br />
The same thing can happen if you switch domain controllers or if you are assigned
new Identities by your domain administrator.<br /><br /><b>The solution!</b><br />
Delete the <b>DefaultView.seView</b> Data Connection with your Visual Studio ServerExplorer
folder.<br />
Close and re-open the DataSet. All good and working.<br /><br />
Visual Studio ServerExplorer folder Path:<br />
C:\Documents and Settings\%username%\Application Data\Microsoft\VisualStudio\8.0\ServerExplorer<br /><br /><br /><p></p><img width="0" height="0" src="http://www.know24.net/blog/aggbug.ashx?id=c4bb5f90-ba00-4968-9aa4-96253654e3de" /></div>
    </content>
  </entry>
  <entry>
    <title>An unexptected error occured on send | SSL</title>
    <link rel="alternate" type="text/html" href="http://www.know24.net/blog/An+Unexptected+Error+Occured+On+Send+SSL.aspx" />
    <id>http://www.know24.net/blog/PermaLink,guid,d842745c-239c-4c1c-9906-d407db0daa77.aspx</id>
    <published>2009-05-07T11:56:18.21425-05:00</published>
    <updated>2009-05-07T11:56:18.21425-05:00</updated>
    <category term="VS2005" label="VS2005" scheme="http://www.know24.net/blog/CategoryView,category,VS2005.aspx" />
    <content type="html">We just ran into a problem with our application connecting to an Ssl based webservice. &lt;br&gt;
Our app worked fine on our Windows 2003 Server however when we put it in the live
environment which was Server 2008, it failed.&lt;br&gt;
&lt;br&gt;
After going through the whole shabang, we determined it be the&amp;nbsp; .Net ServicePointManager
needing to be set to use SSL3 security protocol.&lt;br&gt;
Oddly enough when checking the protocol in Server 2008, it displayed using Ssl3. However
you still need to set it?!&lt;br&gt;
Here is the code we placed before calling the webservice thas solved the problem.&lt;br&gt;
&lt;br&gt;
&lt;span style="background: gray none repeat scroll 0% 0%; font-size: 10pt; font-family: Consolas; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;/span&gt; 
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;
&lt;meta name="ProgId" content="Word.Document"&gt;
&lt;meta name="Generator" content="Microsoft Word 11"&gt;
&lt;meta name="Originator" content="Microsoft Word 11"&gt;
&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"&gt;
&lt;o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="place"&gt;&lt;/o:smarttagtype&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
 &lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" LatentStyleCount="156"&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;!--[if !mso]&gt;&lt;object
 classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui&gt;&lt;/object&gt;
&lt;style&gt;
st1\:*{behavior:url(#ieooui) }
&lt;/style&gt;
&lt;![endif]--&gt;&lt;style&gt;
&lt;!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 90.0pt 72.0pt 90.0pt;
	mso-header-margin:35.4pt;
	mso-footer-margin:35.4pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;
&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
&lt;/style&gt;
&lt;![endif]--&gt;
&lt;p class="MsoNormal" style=""&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;//
required to be explicitly set in 
&lt;st1:place w:st="on"&gt;Vista&lt;/st1:place&gt;
/ Server &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="color: green;"&gt;2008&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style="color: green;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&lt;/span&gt;System.Net.&lt;span style="color: rgb(43, 145, 175);"&gt;ServicePointManager&lt;/span&gt;.SecurityProtocol
= System.Net.&lt;span style="color: rgb(43, 145, 175);"&gt;SecurityProtocolType&lt;/span&gt;.Ssl3;&lt;/span&gt;
&lt;/p&gt;
&lt;br&gt;
&lt;br&gt;
Other related error messages:&lt;br&gt;
Received an unexpected EOF or 0 bytes from the transport stream.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.know24.net/blog/aggbug.ashx?id=d842745c-239c-4c1c-9906-d407db0daa77" /&gt;</content>
  </entry>
  <entry>
    <title>Decompress GZip / Deflate HTTP Responses</title>
    <link rel="alternate" type="text/html" href="http://www.know24.net/blog/Decompress+GZip+Deflate+HTTP+Responses.aspx" />
    <id>http://www.know24.net/blog/PermaLink,guid,7b9aa0e9-520f-44a2-82c5-bcac599444ea.aspx</id>
    <published>2009-01-05T09:23:04.652625-06:00</published>
    <updated>2009-01-05T09:23:04.652625-06:00</updated>
    <category term="CSharp / C#" label="CSharp / C#" scheme="http://www.know24.net/blog/CategoryView,category,CSharp%2B%2f%2BC%23.aspx" />
    <content type="html">In this article I will explain how to decompress web responses that are compressed with GZip or Deflate compression.&lt;br&gt;
&lt;br&gt;
I battled with this problem for 5 hours which was mainly due to the fact that most
of the GZip methods out there on the net are flawed when applied to certain scenarios.&lt;br&gt;
This led me down the path of trying nearly every conceivable uncompression method
I could find that would work on GZipped http responses.&lt;br&gt;
&lt;br&gt;
Firstly, a quick overview of HTTP Compression. (feel free to skip this section)&lt;br&gt;
Web-Servers will use Http Compression if both your browser and the web-server support
http-compression.&lt;br&gt;
Your web client will send a header informing the server what encoding-type it supports.
The web-server will respond with a header which informs your browser which encoding-type
its using.&lt;br&gt;
So if your browser sent an Accept-Encoding of GZip, a web-server that’s supports GZip
page compression will respond with content that is GZip compressed.&lt;br&gt;
&lt;br&gt;
Okay, so we understand the idea behind a web-server responding with compressed Html
or data. So lets move on to a C# example.&lt;br&gt;
What we will do is emulate a web browser by using an instance of the System.Net.WebClient,
set it to support GZip compression and then proceeds to decompress the response from
the web-server.&lt;br&gt;
Fun!&lt;br&gt;
&lt;br&gt;
&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
 &lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" LatentStyleCount="156"&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt;
&lt;!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 90.0pt 72.0pt 90.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;
&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
&lt;/style&gt;
&lt;![endif]--&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; create
web client&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; set
headers: User-Agent &amp;amp; Accept-Encoding&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: green;"&gt;
&lt;u5:p&gt;&amp;nbsp;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
System.Net.WebClient wc;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
wc = &lt;span style="color: blue;"&gt;new&lt;/span&gt; System.Net.WebClient();&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
wc.Headers[&lt;span style="color: rgb(163, 21, 21);"&gt;"User-Agent"&lt;/span&gt;] = &lt;span style="color: rgb(163, 21, 21);"&gt;"Mozilla/4.0"&lt;/span&gt;; &lt;span style="color: green;"&gt;//
You must specify User-Agent type&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
wc.Headers[&lt;span style="color: rgb(163, 21, 21);"&gt;"Accept-Encoding"&lt;/span&gt;] = &lt;span style="color: rgb(163, 21, 21);"&gt;"gzip,
deflate"&lt;/span&gt;; &lt;span style="color: green;"&gt;// here we specify that our client supports
both GZip and Deflate encoding types&lt;/span&gt;&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;br&gt;
&lt;br&gt;
Once we have our client setup, we can go ahead and send your request to the server.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
 &lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" LatentStyleCount="156"&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt;
&lt;!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 90.0pt 72.0pt 90.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;
&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
&lt;/style&gt;
&lt;![endif]--&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; request
page from web server&lt;/span&gt;&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;br style=""&gt;
&lt;!--[endif]--&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
System.IO.&lt;span style="color: rgb(43, 145, 175);"&gt;StreamReader&lt;/span&gt; webReader;&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
webReader = &lt;span style="color: blue;"&gt;new&lt;/span&gt; System.IO.&lt;span style="color: rgb(43, 145, 175);"&gt;StreamReader&lt;/span&gt;(wc.OpenRead(&lt;span style="color: rgb(163, 21, 21);"&gt;"http://www.know24.net/blog/"&lt;/span&gt;));&lt;u5:p&gt;&lt;/u5:p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;br&gt;
&lt;br&gt;
We now need to check which encoding type the web-server chose so that we can handle
the web-response correctly.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
 &lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" LatentStyleCount="156"&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt;
&lt;!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 90.0pt 72.0pt 90.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;
&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
&lt;/style&gt;
&lt;![endif]--&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;string&lt;/span&gt; data
= &lt;span style="color: blue;"&gt;string&lt;/span&gt;.Empty; &lt;span style="color: green;"&gt;// will
be used to store our uncompressed page content&lt;/span&gt;&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;u12:WordDocument&gt;
  &lt;u12:View&gt;Normal&lt;/u12:View&gt;
  &lt;u12:Zoom&gt;0&lt;/u12:Zoom&gt;
  &lt;u12:PunctuationKerning/&gt;
  &lt;u12:ValidateAgainstSchemas/&gt;
  &lt;u12:SaveIfXMLInvalid&gt;false&lt;/u12:SaveIfXMLInvalid&gt;
  &lt;u12:IgnoreMixedContent&gt;false&lt;/u12:IgnoreMixedContent&gt;
  &lt;u12:AlwaysShowPlaceholderText&gt;false&lt;/u12:AlwaysShowPlaceholderText&gt;
  &lt;u12:Compatibility&gt;
   &lt;u12:BreakWrappedTables/&gt;
   &lt;u12:SnapToGridInCell/&gt;
   &lt;u12:WrapTextWithPunct/&gt;
   &lt;u12:UseAsianBreakRules/&gt;
   &lt;u12:DontGrowAutofit/&gt;
  &lt;/u12:Compatibility&gt;
  &lt;u12:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/u12:BrowserLevel&gt;
 &lt;/u12:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;u13:LatentStyles DefLockedState="false" LatentStyleCount="156"&gt;  &lt;/u13:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;string&lt;/span&gt; sResponseHeader
= wc.ResponseHeaders[&lt;span style="color: rgb(163, 21, 21);"&gt;"Content-Encoding"&lt;/span&gt;];&lt;span style="color: green;"&gt; //
get response header&lt;/span&gt;&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (!&lt;span style="color: blue;"&gt;string&lt;/span&gt;.IsNullOrEmpty(sResponseHeader))&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
{&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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;span style="color: blue;"&gt;if&lt;/span&gt; (sResponseHeader.ToLower().Contains(&lt;span style="color: rgb(163, 21, 21);"&gt;"gzip"&lt;/span&gt;))&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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; &lt;span style="color: blue;"&gt;byte&lt;/span&gt;[]
b = DecompressGzip(webReader.BaseStream);&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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;
data = System.Text.&lt;span style="color: rgb(43, 145, 175);"&gt;Encoding&lt;/span&gt;.GetEncoding(wc.Encoding.CodePage).GetString(b);&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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;span style="color: blue;"&gt;else&lt;/span&gt; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (sResponseHeader.ToLower().Contains(&lt;span style="color: rgb(163, 21, 21);"&gt;"deflate"&lt;/span&gt;))&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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; &lt;span style="color: blue;"&gt;byte&lt;/span&gt;[]
b = DecompressDeflate(webReader.BaseStream);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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;
data = System.Text.&lt;span style="color: rgb(43, 145, 175);"&gt;Encoding&lt;/span&gt;.GetEncoding(wc.Encoding.CodePage).GetString(b);&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//
uncompressed, standard response 
&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;else&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
{&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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;
data = webReader.ReadToEnd();&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;br&gt;
&lt;br&gt;
Above you will see I call the &lt;b&gt;DecompressGzip &lt;/b&gt;method which decompresses the
GZipped response and returns an array of bytes. I then proceed to convert the bytes
to the CORRECT character encoding type. 
&lt;br&gt;
What you must do is detect the character encoding found in the response and apply
this when converting your bytes to a string. Failure to do so will mean death...&amp;nbsp;
ok no seriously, it mean's possible time wasting problem-fixing in the future. 
&lt;br&gt;
&lt;br&gt;
Now for the long awaited method &lt;b&gt;DecompressGzip&lt;/b&gt;. 
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
 &lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" LatentStyleCount="156"&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt;
&lt;!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 90.0pt 72.0pt 90.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;
&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
&lt;/style&gt;
&lt;![endif]--&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;private&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;byte&lt;/span&gt;[]
DecompressGzip(&lt;span style="color: rgb(43, 145, 175);"&gt;Stream&lt;/span&gt; streamInput)&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
{&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(43, 145, 175);"&gt;Stream&lt;/span&gt; streamOutput
= &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;MemoryStream&lt;/span&gt;();&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;int&lt;/span&gt; iOutputLength
= 0;&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;try&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
{&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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;span style="color: blue;"&gt;byte&lt;/span&gt;[]
readBuffer = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: blue;"&gt;byte&lt;/span&gt;[4096];&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;
&lt;u5:p&gt;&amp;nbsp;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; read
from input stream and write to gzip stream&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: green;"&gt;
&lt;u5:p&gt;&amp;nbsp;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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;span style="color: blue;"&gt;using&lt;/span&gt; (GZipStream
streamGZip = &lt;span style="color: blue;"&gt;new&lt;/span&gt; GZipStream(streamInput, CompressionMode.Decompress))&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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; 
&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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; &lt;span style="color: blue;"&gt;int&lt;/span&gt; i;&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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; &lt;span style="color: blue;"&gt;while&lt;/span&gt; ((i
= streamGZip.Read(readBuffer, 0, readBuffer.Length)) != 0)&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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;
{&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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;
streamOutput.Write(readBuffer, 0, i);&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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;
iOutputLength = iOutputLength + i;&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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;
}&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;catch&lt;/span&gt; (&lt;span style="color: rgb(43, 145, 175);"&gt;Exception&lt;/span&gt; ex)&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
{&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&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;span style="color: green;"&gt;//
todo: handle exception&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;
&lt;u5:p&gt;&amp;nbsp;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; read
uncompressed data from output stream into a byte array&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: green;"&gt;
&lt;u5:p&gt;&amp;nbsp;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;byte&lt;/span&gt;[]
buffer = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: blue;"&gt;byte&lt;/span&gt;[iOutputLength];&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
streamOutput.Position = 0;&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
streamOutput.Read(buffer, 0, buffer.Length);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;
&lt;u5:p&gt;&amp;nbsp;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return&lt;/span&gt; buffer;&lt;u5:p&gt;&lt;/u5:p&gt;
&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;}&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;br&gt;
&lt;br&gt;
This method reads the webResponse base-stream into a GZipStream and which outputs
the uncompressed data to the MemoryStream. From the memory stream we read the data
into a byte array and return this to the caller.&lt;br&gt;
&lt;br&gt;
I've neglected to add the &lt;b&gt;DecompressDeflate &lt;/b&gt;method as you can easily rename
the GZipStream to DeflateStream which will then handle that encoding type.&lt;br&gt;
&lt;br&gt;
That’s that! If you get stuck or can offer any suggestions to improve the above code,
feel free to leave comments. 
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.know24.net/blog/aggbug.ashx?id=7b9aa0e9-520f-44a2-82c5-bcac599444ea" /&gt;</content>
  </entry>
  <entry>
    <title>Url Rewriting and Google Indexing not working</title>
    <link rel="alternate" type="text/html" href="http://www.know24.net/blog/Url+Rewriting+And+Google+Indexing+Not+Working.aspx" />
    <id>http://www.know24.net/blog/PermaLink,guid,511ad332-4dc2-4935-9b42-d2cd34053db5.aspx</id>
    <published>2008-12-02T04:31:49.133-06:00</published>
    <updated>2008-12-02T05:12:36.883875-06:00</updated>
    <category term="ASP.NET 2" label="ASP.NET 2" scheme="http://www.know24.net/blog/CategoryView,category,ASP.NET%2B2.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">A little while back I designed a simple
social networking website for a client making use of UrlRewriter.net for rewriting
their dynamic url's into readable static url's. After a couple of months I realised
that Google was not indexing these pages and so I started doing a bit of digging.<br /><br />
What I found was that Google made updates to their crawler's browser information,
identifying the crawler as a Mozilla type browser. Previously the Google crawler identified
itself as a generic browser within ASP.Net. 
<br />
Since the change, Google crawlers are now matched to the mozilla.browser definition
within asp.net due to the word Mozilla appearing in the Google crawlers browser information.
The problem with using the mozilla.browser definition for a crawler is that it does
not support standard features required for crawlers to index all web pages, resulting
in our pages not being correctly indexed.<br /><br />
To correct this we simply create a new .browser definition that closely matches the
browser type Google is using, so that asp.net will associate this browser definition
with the Google Bot's browser info.<br /><br />
To do this, create a sub-directory called <b>App_Browser</b> in your web application's
root folder. Create a new file in this folder called <b>genericmozilla5.browser</b> and
copy the xml below.<br /><font color="#006400"><br />
&lt;browsers&gt;<br />
  &lt;browser id="GenericMozilla5" parentID="Mozilla"&gt;<br />
    &lt;identification&gt;<br />
      &lt;userAgent match="Mozilla/5\.(?'minor'\d+).*[C|c]ompatible;
?(?'browser'.+); ?\+?(http://.+)\)" /&gt;<br />
    &lt;/identification&gt;<br />
    &lt;capabilities&gt;<br />
      &lt;capability name="majorversion" value="5" /&gt;<br />
      &lt;capability name="minorversion" value="${minor}"
/&gt;<br />
      &lt;capability name="browser" value="${browser}" /&gt;<br />
      &lt;capability name="Version" value="5.${minor}" /&gt;<br />
      &lt;capability name="activexcontrols" value="true"
/&gt;<br />
      &lt;capability name="backgroundsounds" value="true"
/&gt;<br />
      &lt;capability name="cookies" value="true" /&gt;<br />
      &lt;capability name="css1" value="true" /&gt;<br />
      &lt;capability name="css2" value="true" /&gt;<br />
      &lt;capability name="ecmascriptversion" value="1.2"
/&gt;<br />
      &lt;capability name="frames" value="true" /&gt;<br />
      &lt;capability name="javaapplets" value="true" /&gt;<br />
      &lt;capability name="javascript" value="true" /&gt;<br />
      &lt;capability name="jscriptversion" value="5.0" /&gt;<br />
      &lt;capability name="supportsCallback" value="true"
/&gt;<br />
      &lt;capability name="supportsFileUpload" value="true"
/&gt;<br />
      &lt;capability name="supportsMultilineTextBoxDisplay"
value="true" /&gt;<br />
      &lt;capability name="supportsMaintainScrollPositionOnPostback"
value="true" /&gt;<br />
      &lt;capability name="supportsVCard" value="true" /&gt;<br />
      &lt;capability name="supportsXmlHttp" value="true"
/&gt;<br />
      &lt;capability name="tables" value="true" /&gt;<br />
      &lt;capability name="vbscript" value="true" /&gt;<br />
      &lt;capability name="w3cdomversion" value="1.0" /&gt;<br />
      &lt;capability name="xml" value="true" /&gt;<br />
      &lt;capability name="tagwriter" value="System.Web.UI.HtmlTextWriter"
/&gt;<br />
    &lt;/capabilities&gt;<br />
  &lt;/browser&gt;<br />
&lt;/browsers&gt;</font><br /><br /><br /><i>Note: You may need to wait up to a few months to see the changes take effect depending
how well your website is indexed.</i><br /><br /><p></p><img width="0" height="0" src="http://www.know24.net/blog/aggbug.ashx?id=511ad332-4dc2-4935-9b42-d2cd34053db5" /></div>
    </content>
  </entry>
</feed>