<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Footprints in the snow of a warped mind - AJAX</title>
    <link>http://blogs.thesitedoctor.co.uk/test/</link>
    <description>newtelligence powered</description>
    <language>en-us</language>
    <copyright>Tim</copyright>
    <lastBuildDate>Fri, 21 Sep 2007 22:20:01 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>timgaunt@gmail.com</managingEditor>
    <webMaster>timgaunt@gmail.com</webMaster>
    <item>
      <trackback:ping>http://blogs.thesitedoctor.co.uk/test/Trackback.aspx?guid=7fb31166-4f44-469c-9631-f3474d86939c</trackback:ping>
      <pingback:server>http://blogs.thesitedoctor.co.uk/test/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.thesitedoctor.co.uk/test/PermaLink,guid,7fb31166-4f44-469c-9631-f3474d86939c.aspx</pingback:target>
      <dc:creator>Tim</dc:creator>
      <wfw:comment>http://blogs.thesitedoctor.co.uk/test/CommentView,guid,7fb31166-4f44-469c-9631-f3474d86939c.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.thesitedoctor.co.uk/test/SyndicationService.asmx/GetEntryCommentsRss?guid=7fb31166-4f44-469c-9631-f3474d86939c</wfw:commentRss>
      <title>What have I been up to?</title>
      <guid isPermaLink="false">http://blogs.thesitedoctor.co.uk/test/PermaLink,guid,7fb31166-4f44-469c-9631-f3474d86939c.aspx</guid>
      <link>http://blogs.thesitedoctor.co.uk/test/2007/09/21/WhatHaveIBeenUpTo.aspx</link>
      <pubDate>Fri, 21 Sep 2007 22:20:01 GMT</pubDate>
      <description>&lt;p&gt;
It's been rather quiet&amp;nbsp;on my blog&amp;nbsp;recently, if you're wondering why (and
don't chat to me on/off-line) I thought I would share with you what we've been working
on recently. 
&lt;/p&gt;
&lt;p&gt;
For the past month or so &lt;a title="West Midlands web development and design" href="http://www.thesitedoctor.co.uk/?utm_source=The%2BSite%2BDoctor&amp;amp;utm_medium=blog&amp;amp;utm_content=post"&gt;The
Site Doctor&lt;/a&gt; has been developing a new web site (&lt;a title="Porter and Woodman&amp;rsquo;s Corporate gifts including an exquisite selection of wine and hamper gifts. The wooden cases used for the hamper gifts are all manufactured in our own Wood Shop, with printing and personalisation carried out in-house" href="http://www.wineandhampergifts.co.uk"&gt;www.wineandhampergifts.co.uk&lt;/a&gt;)&amp;nbsp;for &lt;a title="Producers of personalised corporate hampers and gifts" href="http://www.porterandwoodman.co.uk/?utm_source=The%2BSite%2BDoctor&amp;amp;utm_medium=blog&amp;amp;utm_content=post"&gt;Porter
and Woodman Gifts 
&lt;abbr title="Limited"&gt;
Ltd
&lt;/abbr&gt;
&lt;/a&gt; - a local company that produces &lt;a title="Porter and Woodman&amp;rsquo;s Corporate gifts including an exquisite selection of wine and hamper gifts. The wooden cases used for the hamper gifts are all manufactured in our own Wood Shop, with printing and personalisation carried out in-house" href="http://www.wineandhampergifts.co.uk/?utm_source=The%2BSite%2BDoctor&amp;amp;utm_medium=blog&amp;amp;utm_content=post"&gt;personalised
corporate hampers and gifts&lt;/a&gt;. It's been quite a challenge as they have a rather
unusual ordering system that allows multiple recipients/addresses multiple items.
Looking at it now, it's not so complicated but the delivery charge calculations and
initial specs took a while to fully grasp. It's been really enjoyable.
&lt;/p&gt;
&lt;p&gt;
I'll probably cover aspects of the site over the forthcoming months but there are
a few really nice features to the &lt;a title="Porter and Woodman&amp;rsquo;s Corporate gifts including an exquisite selection of wine and hamper gifts. The wooden cases used for the hamper gifts are all manufactured in our own Wood Shop, with printing and personalisation carried out in-house" href="http://www.wineandhampergifts.co.uk/?utm_source=The%2BSite%2BDoctor&amp;amp;utm_medium=blog&amp;amp;utm_content=post"&gt;Wine
and Hamper Gifts site&lt;/a&gt; (or at least I think so), some of which the end user will
never know about such as the use of generics to calculate the address/recipient/gift
variations) and those that they may -for instance the use of the JavaScript&lt;sup&gt;1&lt;/sup&gt; Zoom
function on the product details page (courtesy of &lt;a title="LuckyZoom -impressive JavaScript zooming" href="http://luckyteam.co.uk/products/LuckyZoom/?utm_source=The%2BSite%2BDoctor&amp;amp;utm_medium=blog&amp;amp;utm_content=post"&gt;LuckyZoom&lt;/a&gt;),
also the design created by our excellent designer Gareth Brown all adds up to what
has to be one of the best sites I've developed to date.
&lt;/p&gt;
&lt;p&gt;
&lt;sup&gt;1&lt;/sup&gt; Yes, I did just say I've integrated some JavaScript into the site ;)
&lt;/p&gt;
&lt;p&gt;
I doubt most of my readers are interested on the in's and out's of the project itself
but from an 
&lt;abbr title="Search Engine Optimisation"&gt;
SEO
&lt;/abbr&gt;
perspective, I for one am expecting pretty decent results. We opted to use the &lt;a title="URL Rewriting IIS ISAPI from Helicon" href="http://www.isapirewrite.com/?utm_source=The%2BSite%2BDoctor&amp;amp;utm_medium=blog&amp;amp;utm_content=post"&gt;URL
Rewriting ISAPI from Helicon&lt;/a&gt; this time round over our usual IISMods 
&lt;abbr title="Uniform Resource Locator"&gt;
URL
&lt;/abbr&gt;
Rewriting ISAPI as for some reason the IISMods site has been offline for a while (and
checking now has been converted into a very weird site).
&lt;/p&gt;
&lt;p&gt;
Another aspect that some people may be unaware of is that the majority of the &lt;a title="Porter and Woodman&amp;rsquo;s Corporate gifts including an exquisite selection of wine and hamper gifts. The wooden cases used for the hamper gifts are all manufactured in our own Wood Shop, with printing and personalisation carried out in-house" href="http://www.wineandhampergifts.co.uk/?utm_source=The%2BSite%2BDoctor&amp;amp;utm_medium=blog&amp;amp;utm_content=post"&gt;Wine
and Hamper Gifts site&lt;/a&gt; operates the same without JavaScript as it does with JavaScript,
this is important not only for screen readers but also search engines. There is only
one area of the &lt;a title="Porter and Woodman&amp;rsquo;s Corporate gifts including an exquisite selection of wine and hamper gifts. The wooden cases used for the hamper gifts are all manufactured in our own Wood Shop, with printing and personalisation carried out in-house" href="http://www.wineandhampergifts.co.uk/?utm_source=The%2BSite%2BDoctor&amp;amp;utm_medium=blog&amp;amp;utm_content=post"&gt;Wine
and Hamper Gifts site&lt;/a&gt; that I'm aware of that doesn't operate without JavaScript
and that is the "Personalise this gift" link on the &lt;a title="Wine and Hamper gifts cart page" href="http://www.wineandhampergifts.co.uk/order/?utm_source=The%2BSite%2BDoctor&amp;amp;utm_medium=blog&amp;amp;utm_content=post"&gt;cart
page&lt;/a&gt; that allows the user to either edit the existing message or add one that
doesn't already exist, that's because it uses a LinkButton, but I may find a way around
that later.
&lt;/p&gt;
&lt;p&gt;
Other features that I really like are little things like the way the drop down lists
on the left hand menu are created -they're not actually drop down lists but unordered
lists that are then manipulated using JavaScript, I think the JavaScript could do
with a little tweaking but the result is superb. The &lt;a title="Porter and Woodman&amp;rsquo;s Corporate gifts including an exquisite selection of wine and hamper gifts. The wooden cases used for the hamper gifts are all manufactured in our own Wood Shop, with printing and personalisation carried out in-house" href="http://www.wineandhampergifts.co.uk/?utm_source=The%2BSite%2BDoctor&amp;amp;utm_medium=blog&amp;amp;utm_content=post"&gt;Wine
and Hamper Gifts site&lt;/a&gt; also creates a 
&lt;abbr title="Portable Document Format"&gt;
PDF
&lt;/abbr&gt;
receipt for the user which is emailed to them, this is something I've been meaning
to look into for some time but haven't had the chance, luckily while I was developing
the site, &lt;a title="Active Pixels Ltd -a web development business based in Chelmsford, Essex" href="http://www.activepixels.co.uk/?utm_source=The%2BSite%2BDoctor&amp;amp;utm_medium=blog&amp;amp;utm_content=post"&gt;Sean
Ronan&lt;/a&gt; posted to the &lt;a title="UK ASP/ASP.Net discussion list" href="http://www.mswebdev.org.uk/?utm_source=The%2BSite%2BDoctor&amp;amp;utm_medium=blog&amp;amp;utm_content=post"&gt;MsWebDev
list&lt;/a&gt; about an &lt;a title="Create PDF files on the fly using ASP.Net" href="http://sourceforge.net/projects/itextsharp/?utm_source=The%2BSite%2BDoctor&amp;amp;utm_medium=blog&amp;amp;utm_content=post"&gt;ASP.Net
PDF library iTextSharp&lt;/a&gt; (a port from a Java library) which, despite a few oddities
from the 
&lt;abbr title="Point Of View"&gt;
POV
&lt;/abbr&gt;
of the Java port does exactly what I wanted. The library is pretty easy to use once
you get your head around it and certainly &lt;a href="http://blogs.thesitedoctor.co.uk/tim/files/Example-wine-and-hamper-gifts-order.pdf"&gt;produces
some nice results&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
There's still more work that's needed to finalise the content and various aspects
of the &lt;a title="Porter and Woodman&amp;rsquo;s Corporate gifts including an exquisite selection of wine and hamper gifts. The wooden cases used for the hamper gifts are all manufactured in our own Wood Shop, with printing and personalisation carried out in-house" href="http://www.wineandhampergifts.co.uk/?utm_source=The%2BSite%2BDoctor&amp;amp;utm_medium=blog&amp;amp;utm_content=post"&gt;Wine
and Hamper Gifts website&lt;/a&gt; but if you have a chance, check out the new &lt;a title="Producers of personalised corporate hampers and gifts" href="http://www.porterandwoodman.co.uk/?utm_source=The%2BSite%2BDoctor&amp;amp;utm_medium=blog&amp;amp;utm_content=post"&gt;Porter
and Woodman Gifts 
&lt;abbr title="Limited"&gt;
Ltd
&lt;/abbr&gt;
&lt;/a&gt; &lt;a title="Porter and Woodman&amp;rsquo;s Corporate gifts including an exquisite selection of wine and hamper gifts. The wooden cases used for the hamper gifts are all manufactured in our own Wood Shop, with printing and personalisation carried out in-house" href="http://www.wineandhampergifts.co.uk/?utm_source=The%2BSite%2BDoctor&amp;amp;utm_medium=blog&amp;amp;utm_content=post"&gt;Wine
and Hamper Gifts website&lt;/a&gt; and leave a comment here letting me know what you think
:D
&lt;/p&gt;
&lt;p&gt;
Oh, and they've given us a pretty high target to get before Christmas so if you're
thinking about treating your customers to a&amp;nbsp;&lt;a title="Porter and Woodman&amp;rsquo;s Corporate gifts including an exquisite selection of wine and hamper gifts. The wooden cases used for the hamper gifts are all manufactured in our own Wood Shop, with printing and personalisation carried out in-house" href="http://www.wineandhampergifts.co.uk/?utm_source=The%2BSite%2BDoctor&amp;amp;utm_medium=blog&amp;amp;utm_content=post"&gt;personalised
corporate hamper&amp;nbsp;or gift&lt;/a&gt;&amp;nbsp;give a little thought to using &lt;a title="Porter and Woodman&amp;rsquo;s Corporate gifts including an exquisite selection of wine and hamper gifts. The wooden cases used for the hamper gifts are all manufactured in our own Wood Shop, with printing and personalisation carried out in-house" href="http://www.wineandhampergifts.co.uk"&gt;www.wineandhampergifts.co.uk&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/test/aggbug.ashx?id=7fb31166-4f44-469c-9631-f3474d86939c" /&gt;</description>
      <comments>http://blogs.thesitedoctor.co.uk/test/CommentView,guid,7fb31166-4f44-469c-9631-f3474d86939c.aspx</comments>
      <category>AJAX</category>
      <category>ASP.Net</category>
      <category>C#</category>
      <category>CSS</category>
      <category>Design</category>
      <category>SEO</category>
      <category>The Site Doctor</category>
      <category>Web Development</category>
    </item>
    <item>
      <trackback:ping>http://blogs.thesitedoctor.co.uk/test/Trackback.aspx?guid=f1e53961-7c8c-4f1e-90fa-b0d04c1e669d</trackback:ping>
      <pingback:server>http://blogs.thesitedoctor.co.uk/test/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.thesitedoctor.co.uk/test/PermaLink,guid,f1e53961-7c8c-4f1e-90fa-b0d04c1e669d.aspx</pingback:target>
      <dc:creator>Tim</dc:creator>
      <wfw:comment>http://blogs.thesitedoctor.co.uk/test/CommentView,guid,f1e53961-7c8c-4f1e-90fa-b0d04c1e669d.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.thesitedoctor.co.uk/test/SyndicationService.asmx/GetEntryCommentsRss?guid=f1e53961-7c8c-4f1e-90fa-b0d04c1e669d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
As with my previous post, we upgraded the AJAX framework on the weekend which broke
a few things, but one control in particular that broke was our TextChangedTextBox
which is based on Pete Kellner's timed postback control. Since updating we were receiving
a "'debug' is undefined" error on line 1409 (which was in one of the JavaScript include
files).
</p>
        <p>
Having had this issue before I updated the TextChangedBehavior.js but that didn't
sort it, I have the latest version of the Futures on the server too so I was lost.
Turns out I had an old version of the AJAX Futures DLL within the Bin folder of the
project.
</p>
        <p>
So as with my post on the ASP.Net forums before -make sure you update your AJAX Futures
when updating your Microsoft AJAX framework!
</p>
        <img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/test/aggbug.ashx?id=f1e53961-7c8c-4f1e-90fa-b0d04c1e669d" />
      </body>
      <title>'debug' is undefined with Microsoft AJAX release and TextChangedBehavior.js</title>
      <guid isPermaLink="false">http://blogs.thesitedoctor.co.uk/test/PermaLink,guid,f1e53961-7c8c-4f1e-90fa-b0d04c1e669d.aspx</guid>
      <link>http://blogs.thesitedoctor.co.uk/test/2007/08/08/debugIsUndefinedWithMicrosoftAJAXReleaseAndTextChangedBehaviorjs.aspx</link>
      <pubDate>Wed, 08 Aug 2007 05:20:47 GMT</pubDate>
      <description>&lt;p&gt;
As with my previous post, we upgraded the AJAX framework on the weekend which broke
a few things, but one control in particular that broke was our TextChangedTextBox
which is based on Pete Kellner's timed postback control. Since updating we were receiving
a "'debug' is undefined" error on line 1409 (which was in one of the JavaScript include
files).
&lt;/p&gt;
&lt;p&gt;
Having had this issue before I updated the TextChangedBehavior.js but that didn't
sort it, I have the latest version of the Futures on the server too so I was lost.
Turns out I had an old version of the AJAX Futures DLL within the Bin folder of the
project.
&lt;/p&gt;
&lt;p&gt;
So as with my post on the ASP.Net forums before -make sure you update your AJAX Futures
when updating your Microsoft AJAX framework!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/test/aggbug.ashx?id=f1e53961-7c8c-4f1e-90fa-b0d04c1e669d" /&gt;</description>
      <comments>http://blogs.thesitedoctor.co.uk/test/CommentView,guid,f1e53961-7c8c-4f1e-90fa-b0d04c1e669d.aspx</comments>
      <category>AJAX</category>
      <category>ASP.Net</category>
      <category>IIS</category>
      <category>The Site Doctor</category>
      <category>Web Development</category>
      <category>WebDD</category>
    </item>
    <item>
      <trackback:ping>http://blogs.thesitedoctor.co.uk/test/Trackback.aspx?guid=f8b5f0eb-ba95-4c29-b4d4-55eb717df1c3</trackback:ping>
      <pingback:server>http://blogs.thesitedoctor.co.uk/test/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.thesitedoctor.co.uk/test/PermaLink,guid,f8b5f0eb-ba95-4c29-b4d4-55eb717df1c3.aspx</pingback:target>
      <dc:creator>Tim</dc:creator>
      <wfw:comment>http://blogs.thesitedoctor.co.uk/test/CommentView,guid,f8b5f0eb-ba95-4c29-b4d4-55eb717df1c3.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.thesitedoctor.co.uk/test/SyndicationService.asmx/GetEntryCommentsRss?guid=f8b5f0eb-ba95-4c29-b4d4-55eb717df1c3</wfw:commentRss>
      <title>Reporting errors from AJAX using the WebException Class</title>
      <guid isPermaLink="false">http://blogs.thesitedoctor.co.uk/test/PermaLink,guid,f8b5f0eb-ba95-4c29-b4d4-55eb717df1c3.aspx</guid>
      <link>http://blogs.thesitedoctor.co.uk/test/2007/03/09/ReportingErrorsFromAJAXUsingTheWebExceptionClass.aspx</link>
      <pubDate>Fri, 09 Mar 2007 07:57:18 GMT</pubDate>
      <description>&lt;p&gt;
I&amp;rsquo;ve been using &lt;a href="http://weblogs.asp.net/plip/archive/2004/04/17/114984.aspx"&gt;Phil
Whinstanley&amp;rsquo;s error reporting class&lt;/a&gt;&lt;sup&gt;1&lt;/sup&gt; within my applications for
some time now and it really does help with diagnosing issues with the site&amp;rsquo;s
during development (or client testing) but also alerting me to errors on live sites.
I also like it because it can highlight hacking attempts and also spambot form submissions
&amp;ndash;allowing you to alter the site as needed. A lot of the time it also means we&amp;rsquo;re
alerted to an issue with the site before the client has a chance to call.
&lt;/p&gt;
&lt;p&gt;
&lt;sup&gt;1&lt;/sup&gt;&lt;strong&gt; Note: &lt;/strong&gt;I've been told the files Phil put online all those
years ago are offline but don't panic, I'm posting another post with the relevant
files shortly. If you don't want to use the search function (top right) or you're
just keen, check out &lt;a href="/tim/CommentView,guid,77192a59-7215-48b6-ac6f-07b4d208c35b.aspx#commentstart"&gt;my
comment&lt;/a&gt; within my post about &lt;a href="/tim/2006/11/06/ASPNet+WebException+And+Error+Reporting+Useful+Code.aspx"&gt;ASP.Net
WebException and Error Reporting useful code&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
I&amp;rsquo;m glad he developed it because before this was around I was using a very simple
email alert system that didn&amp;rsquo;t contain even a third of what this one does. Historically
in 
&lt;abbr title="Active Server Pages"&gt;
ASP
&lt;/abbr&gt;
we always reported 500-100 errors as I don&amp;rsquo;t like clients spotting issues before
I do. It&amp;rsquo;s very important to include error reporting in your code otherwise
you may miss a sequence of events that causes your client to loose out on a sale.
&lt;/p&gt;
&lt;p&gt;
Recently however we got in on the &lt;a href="/tim/CategoryView,category,AJAX.aspx"&gt;Atlas/AJAX&lt;/a&gt; scene
pretty early on because we had a new application that would really benefit from a
lack of postback and as it was an internal application only where we had complete
control over the user&amp;rsquo;s environment, accessibility wasn&amp;rsquo;t so much of a
concern (though 
&lt;abbr title="For What It's Worth"&gt;
FWIW
&lt;/abbr&gt;
you can still use the site in the same way without JavaScript activated). 
&lt;/p&gt;
&lt;p&gt;
At present, our development server&amp;rsquo;s 
&lt;abbr title="Simple Mail Transfer Protocol"&gt;
SMTP
&lt;/abbr&gt;
server isn&amp;rsquo;t working properly so I didn&amp;rsquo;t think anything of receiving
no email when I threw an exception during the early stages of development but as soon
as I threw it onto the live server I quickly noticed that I wasn&amp;rsquo;t receiving
errors from the application (we&amp;rsquo;ve got a test page to ensure the error reporting
is working as expected), on investigation I found that the errors were being caught
by the &lt;a href="/tim/CategoryView,category,AJAX.aspx"&gt;Atlas/AJAX&lt;/a&gt; handler (in a
similar way to a try/catch block) which meant no emails were being sent out &amp;ndash;so
what do you do?
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Note: &lt;/strong&gt;Since I first started this article, Atlas has been released
by Microsoft and is now &lt;a href="http://ajax.asp.net/"&gt;AJAX&lt;/a&gt; and as part of the
current release, &lt;a href="http://ajax.asp.net/"&gt;Atlas/AJAX&lt;/a&gt; allows you to capture
errors that are otherwise trapped by the framework and handle them as you like but
for completeness I&amp;rsquo;ll overview things I tried.
&lt;/p&gt;
&lt;p&gt;
Firstly I tried simply bubbling the error up to the global.asax&amp;rsquo;s Application_Error
event handler as I normally would but that won&amp;rsquo;t work as it will still be trapped
by the &lt;a href="/tim/CategoryView,category,AJAX.aspx"&gt;Atlas/AJAX&lt;/a&gt; framework, further
more, the error returned to the user isn&amp;rsquo;t very useful (it&amp;rsquo;s the text
within the exception):
&lt;/p&gt;
&lt;p&gt;
&lt;img src="/tim/img/Atlas-AJAX-Error-Popup.png" alt="Example standard Atlas/AJAX error - a pretty useless error message as far as the user is concerned!" width="389" height="125" /&gt;
&lt;/p&gt;
&lt;p&gt;
The next thing I tried was taking the exception and passing it to the WebException
as you do within the Application_Error event handler, although this worked and for
this project would have been an alright solution because the ScriptManager was contained
within a single MasterPage, I wanted a solution that I could easily roll out to other
projects.
&lt;/p&gt;
&lt;p&gt;
What I decided to do in the end was to wrap the WebException class and adding a single
static method that takes an exception, then I replaced the code within the Global.asax
and within the ScriptManager&amp;rsquo;s error event handler and responded to the user
with a more informative message. The code below will output a user friendly message
-still in a popup though you could redirect if desired. In the live application the
user's location and a reference for the incoming error email is also shown to the
user.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Note:&lt;/strong&gt; TSDGlobals is a settings class we use here, it just references
the relevant setting and contains a set of useful methods that we use throughout most
of our projects.
&lt;/p&gt;
&lt;div class="code"&gt;
&lt;h2&gt;aspx code
&lt;/h2&gt;
&lt;img src="/img/sc/clear.gif" align="top" /&gt;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#8b0000"&gt;asp:ScriptManager&lt;/span&gt;&lt;span style="color:#ff0000"&gt;&amp;nbsp;runat&lt;/span&gt;&lt;span style="color:#8b0000"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000"&gt;&amp;nbsp;ID&lt;/span&gt;&lt;span style="color:#8b0000"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;quot;sm&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000"&gt;&amp;nbsp;EnablePartialRendering&lt;/span&gt;&lt;span style="color:#8b0000"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000"&gt;&amp;nbsp;AllowCustomErrorsRedirect&lt;/span&gt;&lt;span style="color:#8b0000"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000"&gt;&amp;nbsp;OnAsyncPostBackError&lt;/span&gt;&lt;span style="color:#8b0000"&gt;=&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;quot;atlasScriptManager_PageError&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#8b0000"&gt;/asp:ScriptManager&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div class="code"&gt;
&lt;h2&gt;codebehind
&lt;/h2&gt;
&lt;img src="/img/sc/clear.gif" align="top" /&gt;&lt;span style="color:#0000ff"&gt;protected&lt;/span&gt;&amp;nbsp;&lt;span style="color:#00008b"&gt;void&lt;/span&gt;&amp;nbsp;atlasScriptManager_PageError(&lt;span style="color:#0000ff"&gt;object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;AsyncPostBackErrorEventArgs&amp;nbsp;e)&lt;br /&gt;
&lt;div style="display:none;" id="closed633090211901250000_2"&gt;&lt;img src="/img/sc/PlusNoLines.gif" align="top" onclick="showHideCodeDiv('633090211901250000_2', false)" /&gt;&lt;span style="color:#00008b"&gt;{...}&lt;/span&gt;
&lt;/div&gt;
&lt;div style="display:block;" id="open633090211901250000_2"&gt;&lt;img src="/img/sc/minusNoTopLine.gif" align="top" onclick="showHideCodeDiv('633090211901250000_2', true)" /&gt;{&lt;br /&gt;
&lt;img src="/img/sc/I.gif" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#008000"&gt;//A&amp;nbsp;page&amp;nbsp;reference&amp;nbsp;for&amp;nbsp;you&amp;nbsp;(optional&amp;nbsp;but&amp;nbsp;useful)&lt;/span&gt;
&lt;br /&gt;
&lt;img src="/img/sc/I.gif" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#00008b"&gt;string&lt;/span&gt;&amp;nbsp;__PageRef&amp;nbsp;&lt;span style="color:#ff0000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color:#4682b4"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#4682b4"&gt;132&lt;/span&gt;&lt;span style="color:#4682b4"&gt;&amp;quot;&lt;/span&gt;;&lt;br /&gt;
&lt;img src="/img/sc/I.gif" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#008000"&gt;//Update
the message the user will see&lt;/span&gt;
&lt;br /&gt;
&lt;img src="/img/sc/I.gif" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sm&lt;span style="color:#ff0000"&gt;.&lt;/span&gt;AsyncPostBackErrorMessage&amp;nbsp;&lt;span style="color:#ff0000"&gt;=&lt;/span&gt;&amp;nbsp;String&lt;span style="color:#ff0000"&gt;.&lt;/span&gt;Format(&lt;span style="color:#4682b4"&gt;&amp;quot;I'm&amp;nbsp;sorry,
&amp;nbsp;an&amp;nbsp;error&amp;nbsp;has&amp;nbsp;occured,&amp;nbsp;please&amp;nbsp;contact&amp;nbsp;us&amp;nbsp;on&amp;nbsp;01234&amp;nbsp;567890.&amp;nbsp;Quoting&amp;nbsp;Page&amp;nbsp;Ref:
{0} - {1}&amp;quot;&lt;/span&gt;,&amp;nbsp;__PageRef,&amp;nbsp;DateTime&lt;span style="color:#ff0000"&gt;.&lt;/span&gt;Now&lt;span style="color:#ff0000"&gt;.&lt;/span&gt;ToString());&lt;br /&gt;
&lt;img src="/img/sc/I.gif" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#008000"&gt;//Pass&amp;nbsp;it&amp;nbsp;through&amp;nbsp;to&amp;nbsp;the&amp;nbsp;new&amp;nbsp;Error&amp;nbsp;Handler&lt;/span&gt;
&lt;br /&gt;
&lt;img src="/img/sc/I.gif" align="top" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ErrorHandling&lt;span style="color:#ff0000"&gt;.&lt;/span&gt;ErrorHandler&lt;span style="color:#ff0000"&gt;.&lt;/span&gt;Handle(e&lt;span style="color:#ff0000"&gt;.&lt;/span&gt;Exception);&lt;br /&gt;
&lt;img src="/img/sc/L.gif" align="top" /&gt;}
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="code"&gt;
&lt;h2&gt;global.asax
&lt;/h2&gt;
&lt;img src="/img/sc/clear.gif" align="top"&gt;&lt;span style="color:#0000ff"&gt;void&lt;/span&gt;&amp;nbsp;Application_Error(&lt;span style="color:#0000ff"&gt;object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;&lt;span style="color:#008b8b"&gt;EventArgs&lt;/span&gt;&amp;nbsp;e)&lt;br&gt;
&lt;div style="display:none;" id="closed633090223475312500_2"&gt;&lt;img src="/img/sc/PlusNoLines.gif" align=top onclick="showHideCodeDiv('633090223475312500_2', false)"&gt;&lt;b&gt;&lt;span style="color:#00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="display:block;" id="open633090223475312500_2"&gt;&lt;img src="/img/sc/minusNoTopLine.gif" align=top onclick="showHideCodeDiv('633090223475312500_2', true)"&gt;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ErrorHandling.&lt;span style="color:#008b8b"&gt;ErrorHandler&lt;/span&gt;.Handle(Server.GetLastError());&lt;br&gt;
&lt;img src="/img/sc/L.gif" align="top"&gt;}
&lt;/div&gt;
&lt;img src="/img/sc/clear.gif" align="top"&gt;
&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align="top"&gt;&lt;span style="color:#0000ff"&gt;protected&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff"&gt;void&lt;/span&gt;&amp;nbsp;Application_PreRequestHandlerExecute(&lt;span style="color:#008b8b"&gt;Object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;&lt;span style="color:#008b8b"&gt;EventArgs&lt;/span&gt;&amp;nbsp;e)&lt;br&gt;
&lt;div style="display:none;" id="closed633090223475312500_7"&gt;&lt;img src="/img/sc/PlusNoLines.gif" align=top onclick="showHideCodeDiv('633090223475312500_7', false)"&gt;&lt;b&gt;&lt;span style="color:#00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="display:block;" id="open633090223475312500_7"&gt;&lt;img src="/img/sc/minusNoTopLine.gif" align=top onclick="showHideCodeDiv('633090223475312500_7', true)"&gt;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(Context.Handler&amp;nbsp;&lt;span style="color:#0000ff"&gt;is&lt;/span&gt;&amp;nbsp;&lt;span style="color:#008b8b"&gt;IRequiresSessionState&lt;/span&gt;&amp;nbsp;||&amp;nbsp;Context.Handler&amp;nbsp;&lt;span style="color:#0000ff"&gt;is&lt;/span&gt;&amp;nbsp;&lt;span style="color:#008b8b"&gt;IReadOnlySessionState&lt;/span&gt;)&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ErrorReporting.&lt;span style="color:#008b8b"&gt;SessionTracker&lt;/span&gt;.AddRequest(&lt;span style="color:#800000"&gt;"&lt;/span&gt;&lt;span style="color:#800000"&gt;Pre&lt;/span&gt;&amp;nbsp;&lt;span style="color:#800000"&gt;Request&lt;/span&gt;&amp;nbsp;&lt;span style="color:#800000"&gt;Handler&lt;/span&gt;&amp;nbsp;&lt;span style="color:#800000"&gt;Execute&lt;/span&gt;&lt;span style="color:#800000"&gt;"&lt;/span&gt;,&amp;nbsp;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;,&amp;nbsp;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;,&amp;nbsp;&lt;span style="color:#0000ff"&gt;false&lt;/span&gt;);&lt;br&gt;
&lt;img src="/img/sc/L.gif" align="top"&gt;}
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="code"&gt;
&lt;h2&gt;ErrorHandler.cs
&lt;/h2&gt;
&lt;img src="/img/sc/clear.gif" align="top"&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt;&amp;nbsp;System;&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align="top"&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt;&amp;nbsp;System.Data;&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align="top"&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt;&amp;nbsp;System.Configuration;&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align="top"&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt;&amp;nbsp;System.Web;&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align="top"&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt;&amp;nbsp;System.Web.Security;&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align="top"&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt;&amp;nbsp;System.Web.UI;&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align="top"&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt;&amp;nbsp;System.Web.UI.WebControls;&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align="top"&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt;&amp;nbsp;System.Web.UI.WebControls.WebParts;&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align="top"&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt;&amp;nbsp;System.Web.UI.HtmlControls;&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align="top"&gt;
&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align="top"&gt;&lt;span style="color:#0000ff"&gt;namespace&lt;/span&gt;&amp;nbsp;ErrorHandling&lt;br&gt;
&lt;div style="display:none;" id="closed633090220441718750_12"&gt;&lt;img src="/img/sc/PlusNoLines.gif" align=top onclick="showHideCodeDiv('633090220441718750_12', false)"&gt;&lt;b&gt;&lt;span style="color:#00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="display:block;" id="open633090220441718750_12"&gt;&lt;img src="/img/sc/minusNoTopLine.gif" align=top onclick="showHideCodeDiv('633090220441718750_12', true)"&gt;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff"&gt;class&lt;/span&gt;&amp;nbsp;&lt;span style="color:#008b8b"&gt;ErrorHandler&lt;/span&gt;
&lt;br&gt;
&lt;div style="display:none;" id="closed633090220441718750_14"&gt;&lt;img src="/img/sc/plus.gif" align=top onclick="showHideCodeDiv('633090220441718750_14', false)"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="color:#00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="display:block;" id="open633090220441718750_14"&gt;&lt;img src="/img/sc/minus.gif" align=top onclick="showHideCodeDiv('633090220441718750_14', true)"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#008000"&gt;//Declare&amp;nbsp;for&amp;nbsp;the&amp;nbsp;scope&amp;nbsp;of&amp;nbsp;the&amp;nbsp;class&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color:#008b8b"&gt;HttpRequest&lt;/span&gt;&amp;nbsp;context&amp;nbsp;=&amp;nbsp;&lt;span style="color:#008b8b"&gt;HttpContext&lt;/span&gt;.Current.Request;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff"&gt;void&lt;/span&gt;&amp;nbsp;Handle(&lt;span style="color:#008b8b"&gt;Exception&lt;/span&gt;&amp;nbsp;currentError)&lt;br&gt;
&lt;div style="display:none;" id="closed633090220441718750_19"&gt;&lt;img src="/img/sc/plus.gif" align=top onclick="showHideCodeDiv('633090220441718750_19', false)"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="color:#00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="display:block;" id="open633090220441718750_19"&gt;&lt;img src="/img/sc/minus.gif" align=top onclick="showHideCodeDiv('633090220441718750_19', true)"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;Handle(currentError,&amp;nbsp;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;);&lt;br&gt;
&lt;img src="/img/sc/L.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff"&gt;void&lt;/span&gt;&amp;nbsp;Handle(&lt;span style="color:#008b8b"&gt;Exception&lt;/span&gt;&amp;nbsp;currentError,&amp;nbsp;&lt;span style="color:#0000ff"&gt;bool&lt;/span&gt;&amp;nbsp;redirectUser)&lt;br&gt;
&lt;div style="display:none;" id="closed633090220441718750_24"&gt;&lt;img src="/img/sc/plus.gif" align=top onclick="showHideCodeDiv('633090220441718750_24', false)"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="color:#00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="display:block;" id="open633090220441718750_24"&gt;&lt;img src="/img/sc/minus.gif" align=top onclick="showHideCodeDiv('633090220441718750_24', true)"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style="color:#008b8b"&gt;TSDGlobals&lt;/span&gt;.SendSiteErrors)&lt;br&gt;
&lt;div style="display:none;" id="closed633090220441718750_26"&gt;&lt;img src="/img/sc/plus.gif" align=top onclick="showHideCodeDiv('633090220441718750_26', false)"&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;&lt;b&gt;&lt;span style="color:#00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="display:block;" id="open633090220441718750_26"&gt;&lt;img src="/img/sc/minus.gif" align=top onclick="showHideCodeDiv('633090220441718750_26', true)"&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;{&lt;br&gt;
&lt;div style="display:none;" id="closed633090220441718750_27"&gt;&lt;img src="/img/sc/plus.gif" align=top onclick="showHideCodeDiv('633090220441718750_27', false)"&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;&lt;b&gt;&lt;span style="color:#00008b"&gt;Deal&amp;nbsp;with&amp;nbsp;404's&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="display:block;" id="open633090220441718750_27"&gt;&lt;img src="/img/sc/minus.gif" align=top onclick="showHideCodeDiv('633090220441718750_27', true)"&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;&lt;b&gt;&lt;span style="color:#0000ff"&gt;#region&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Deal&amp;nbsp;with&amp;nbsp;&lt;span style="color:#008080"&gt;404&lt;/span&gt;&lt;span style="color:#800000"&gt;'&lt;/span&gt;&lt;span style="color:#800000"&gt;s&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#008000"&gt;//&lt;/span&gt;&lt;span style="color:#008000"&gt;Redirect&amp;nbsp;the&amp;nbsp;user&amp;nbsp;to&amp;nbsp;a&amp;nbsp;friendly&amp;nbsp;page&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(CheckForErrorType(currentError,&amp;nbsp;&lt;span style="color:#800000"&gt;"&lt;/span&gt;&lt;span style="color:#800000"&gt;FileNotFound&lt;/span&gt;&lt;span style="color:#800000"&gt;"&lt;/span&gt;)&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;redirectUser)&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;RedirectToFriendlyUrl(&lt;span style="color:#008b8b"&gt;TSDGlobals&lt;/span&gt;.ErrorPage_PageNotFound);&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;
&lt;br&gt;
&lt;img src="/img/sc/L.gif" align="top"&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;&lt;b&gt;&lt;span style="color:#0000ff"&gt;#endregion&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="display:none;" id="closed633090220441718750_34"&gt;&lt;img src="/img/sc/plus.gif" align=top onclick="showHideCodeDiv('633090220441718750_34', false)"&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;&lt;b&gt;&lt;span style="color:#00008b"&gt;Deal&amp;nbsp;with&amp;nbsp;Spambots&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="display:block;" id="open633090220441718750_34"&gt;&lt;img src="/img/sc/minus.gif" align=top onclick="showHideCodeDiv('633090220441718750_34', true)"&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;&lt;b&gt;&lt;span style="color:#0000ff"&gt;#region&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Deal&amp;nbsp;with&amp;nbsp;Spambots&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#008000"&gt;//Check&amp;nbsp;the&amp;nbsp;error&amp;nbsp;type&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(CheckForErrorType(currentError,&amp;nbsp;&lt;span style="color:#800000"&gt;"&lt;/span&gt;&lt;span style="color:#800000"&gt;System.FormatException&lt;/span&gt;&lt;span style="color:#800000"&gt;"&lt;/span&gt;))&lt;br&gt;
&lt;div style="display:none;" id="closed633090220441718750_38"&gt;&lt;img src="/img/sc/plus.gif" align=top onclick="showHideCodeDiv('633090220441718750_38', false)"&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;&lt;b&gt;&lt;span style="color:#00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="display:block;" id="open633090220441718750_38"&gt;&lt;img src="/img/sc/minus.gif" align=top onclick="showHideCodeDiv('633090220441718750_38', true)"&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;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(context.Form.Count&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="color:#008080"&gt;0&lt;/span&gt;)&lt;br&gt;
&lt;div style="display:none;" id="closed633090220441718750_40"&gt;&lt;img src="/img/sc/plus.gif" align=top onclick="showHideCodeDiv('633090220441718750_40', false)"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="color:#00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="display:block;" id="open633090220441718750_40"&gt;&lt;img src="/img/sc/minus.gif" align=top onclick="showHideCodeDiv('633090220441718750_40', true)"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff"&gt;foreach&lt;/span&gt;&amp;nbsp;(&lt;span style="color:#0000ff"&gt;string&lt;/span&gt;&amp;nbsp;key&amp;nbsp;&lt;span style="color:#0000ff"&gt;in&lt;/span&gt;&amp;nbsp;context.Form)&lt;br&gt;
&lt;div style="display:none;" id="closed633090220441718750_42"&gt;&lt;img src="/img/sc/plus.gif" align=top onclick="showHideCodeDiv('633090220441718750_42', false)"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="color:#00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="display:block;" id="open633090220441718750_42"&gt;&lt;img src="/img/sc/minus.gif" align=top onclick="showHideCodeDiv('633090220441718750_42', true)"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(key.IndexOf(&lt;span style="color:#800000"&gt;"&lt;/span&gt;&lt;span style="color:#800000"&gt;_VIEWSTATE&lt;/span&gt;&lt;span style="color:#800000"&gt;"&lt;/span&gt;)&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="color:#008080"&gt;0&lt;/span&gt;&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;context.Form[key].ToString().IndexOf(&lt;span style="color:#800000"&gt;"&lt;/span&gt;&lt;span style="color:#800000"&gt;Content-Type&lt;/span&gt;&lt;span style="color:#800000"&gt;"&lt;/span&gt;)&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="color:#008080"&gt;0&lt;/span&gt;)&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff"&gt;return&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/L.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align="top"&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;}
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;
&lt;br&gt;
&lt;img src="/img/sc/L.gif" align="top"&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;&lt;b&gt;&lt;span style="color:#0000ff"&gt;#endregion&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#008000"&gt;//Enable&amp;nbsp;the&amp;nbsp;trace&amp;nbsp;for&amp;nbsp;the&amp;nbsp;duration&amp;nbsp;of&amp;nbsp;the&amp;nbsp;error&amp;nbsp;handling&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#008b8b"&gt;TraceContext&lt;/span&gt;&amp;nbsp;t&amp;nbsp;=&amp;nbsp;&lt;span style="color:#008b8b"&gt;HttpContext&lt;/span&gt;.Current.Trace;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#0000ff"&gt;bool&lt;/span&gt;&amp;nbsp;bCurrentState&amp;nbsp;=&amp;nbsp;t.IsEnabled;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;t.IsEnabled&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;
&lt;br&gt;
&lt;div style="display:none;" id="closed633090220441718750_56"&gt;&lt;img src="/img/sc/plus.gif" align=top onclick="showHideCodeDiv('633090220441718750_56', false)"&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;&lt;b&gt;&lt;span style="color:#00008b"&gt;Handle&amp;nbsp;the&amp;nbsp;Exception&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="display:block;" id="open633090220441718750_56"&gt;&lt;img src="/img/sc/minus.gif" align=top onclick="showHideCodeDiv('633090220441718750_56', true)"&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;&lt;b&gt;&lt;span style="color:#0000ff"&gt;#region&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Handle&amp;nbsp;the&amp;nbsp;&lt;span style="color:#008b8b"&gt;Exception&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#008b8b"&gt;WebException&lt;/span&gt;&amp;nbsp;WE&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color:#008b8b"&gt;WebException&lt;/span&gt;();&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;WE.CurrentException&amp;nbsp;=&amp;nbsp;currentError;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;WE.Site&amp;nbsp;=&amp;nbsp;context.Url.Host.ToString();&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#008000"&gt;//Pull&amp;nbsp;the&amp;nbsp;information&amp;nbsp;from&amp;nbsp;the&amp;nbsp;web.config&amp;nbsp;here&amp;nbsp;if&amp;nbsp;desired&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;WE.FloodCount&amp;nbsp;=&amp;nbsp;&lt;span style="color:#008080"&gt;50&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;WE.FloodMins&amp;nbsp;=&amp;nbsp;&lt;span style="color:#008080"&gt;5&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;
&lt;br&gt;
&lt;img src="/img/sc/L.gif" align="top"&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;&lt;b&gt;&lt;span style="color:#0000ff"&gt;#endregion&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="display:none;" id="closed633090220441718750_66"&gt;&lt;img src="/img/sc/plus.gif" align=top onclick="showHideCodeDiv('633090220441718750_66', false)"&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;&lt;b&gt;&lt;span style="color:#00008b"&gt;Choose&amp;nbsp;what&amp;nbsp;you're&amp;nbsp;interested&amp;nbsp;in&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="display:block;" id="open633090220441718750_66"&gt;&lt;img src="/img/sc/minus.gif" align=top onclick="showHideCodeDiv('633090220441718750_66', true)"&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;&lt;b&gt;&lt;span style="color:#0000ff"&gt;#region&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Choose&amp;nbsp;what&amp;nbsp;you're&amp;nbsp;interested&amp;nbsp;in&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;WE.ReturnCache&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;WE.DrillDownInCache&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;WE.IncludeApplication&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;WE.IncludeBrowser&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;WE.IncludeEnvironmentVariables&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;WE.IncludeForm&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;WE.IncludeProcess&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;WE.IncludeQueryString&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;WE.IncludeRequestCookies&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;WE.IncludeRequestHeader&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;WE.IncludeResponseCookies&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;WE.IncludeServerVariables&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;WE.IncludeSession&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;WE.IncludeTrace&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;WE.IncludeVersions&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;WE.IncludeAuthentication&amp;nbsp;=&amp;nbsp;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;
&lt;br&gt;
&lt;img src="/img/sc/L.gif" align="top"&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;&lt;b&gt;&lt;span style="color:#0000ff"&gt;#endregion&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;WE.Handle();&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#008000"&gt;//Return&amp;nbsp;the&amp;nbsp;trace&amp;nbsp;to&amp;nbsp;its&amp;nbsp;original&amp;nbsp;state&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;t.IsEnabled&amp;nbsp;=&amp;nbsp;bCurrentState;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#008000"&gt;//Redirect&amp;nbsp;the&amp;nbsp;user&amp;nbsp;to&amp;nbsp;a&amp;nbsp;friendly&amp;nbsp;page&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(redirectUser)&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;RedirectToFriendlyUrl(&lt;span style="color:#008b8b"&gt;TSDGlobals&lt;/span&gt;.ErrorPage_CodeIssue);&lt;br&gt;
&lt;img src="/img/sc/L.gif" align="top"&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;}
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff"&gt;bool&lt;/span&gt;&amp;nbsp;CheckForErrorType(&lt;span style="color:#008b8b"&gt;Exception&lt;/span&gt;&amp;nbsp;ex,&amp;nbsp;&lt;span style="color:#0000ff"&gt;string&lt;/span&gt;&amp;nbsp;errorText)&lt;br&gt;
&lt;div style="display:none;" id="closed633090220441718750_99"&gt;&lt;img src="/img/sc/plus.gif" align=top onclick="showHideCodeDiv('633090220441718750_99', false)"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="color:#00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="display:block;" id="open633090220441718750_99"&gt;&lt;img src="/img/sc/minus.gif" align=top onclick="showHideCodeDiv('633090220441718750_99', true)"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(ex&amp;nbsp;!=&amp;nbsp;&lt;span style="color:#0000ff"&gt;null&lt;/span&gt;)&lt;br&gt;
&lt;div style="display:none;" id="closed633090220441718750_101"&gt;&lt;img src="/img/sc/plus.gif" align=top onclick="showHideCodeDiv('633090220441718750_101', false)"&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;&lt;b&gt;&lt;span style="color:#00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="display:block;" id="open633090220441718750_101"&gt;&lt;img src="/img/sc/minus.gif" align=top onclick="showHideCodeDiv('633090220441718750_101', true)"&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;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#008000"&gt;//Check&amp;nbsp;the&amp;nbsp;exception&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(ex.GetType().ToString().IndexOf(errorText)&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="color:#008080"&gt;0&lt;/span&gt;)&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#0000ff"&gt;else&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff"&gt;return&lt;/span&gt;&amp;nbsp;CheckForErrorType(ex.InnerException,&amp;nbsp;errorText);&lt;br&gt;
&lt;img src="/img/sc/L.gif" align="top"&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;}
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#0000ff"&gt;else&lt;/span&gt;
&lt;br&gt;
&lt;div style="display:none;" id="closed633090220441718750_109"&gt;&lt;img src="/img/sc/plus.gif" align=top onclick="showHideCodeDiv('633090220441718750_109', false)"&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;&lt;b&gt;&lt;span style="color:#00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="display:block;" id="open633090220441718750_109"&gt;&lt;img src="/img/sc/minus.gif" align=top onclick="showHideCodeDiv('633090220441718750_109', true)"&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;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#0000ff"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff"&gt;false&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/L.gif" align="top"&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;}
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff"&gt;void&lt;/span&gt;&amp;nbsp;RedirectToFriendlyUrl(&lt;span style="color:#0000ff"&gt;string&lt;/span&gt;&amp;nbsp;Url)&lt;br&gt;
&lt;div style="display:none;" id="closed633090220441718750_115"&gt;&lt;img src="/img/sc/plus.gif" align=top onclick="showHideCodeDiv('633090220441718750_115', false)"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="color:#00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="display:block;" id="open633090220441718750_115"&gt;&lt;img src="/img/sc/minus.gif" align=top onclick="showHideCodeDiv('633090220441718750_115', true)"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#008000"&gt;//Only&amp;nbsp;redirect&amp;nbsp;the&amp;nbsp;user&amp;nbsp;if&amp;nbsp;the&amp;nbsp;URL&amp;nbsp;is&amp;nbsp;not&amp;nbsp;empty&amp;nbsp;and&amp;nbsp;we're&amp;nbsp;not&amp;nbsp;on&amp;nbsp;a&amp;nbsp;dev&amp;nbsp;machine&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#008000"&gt;//TODO:&amp;nbsp;Check&amp;nbsp;the&amp;nbsp;referrer&amp;nbsp;to&amp;nbsp;ensure&amp;nbsp;we&amp;nbsp;don't&amp;nbsp;redirect&amp;nbsp;the&amp;nbsp;user&amp;nbsp;to&amp;nbsp;the&amp;nbsp;page&amp;nbsp;causing&amp;nbsp;the&amp;nbsp;error!&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top" /&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;&lt;span style="color:#008000"&gt;//TODO:
Pull&amp;nbsp;the&amp;nbsp;list&amp;nbsp;of&amp;nbsp;development&amp;nbsp;server&amp;nbsp;addresses&amp;nbsp;from&amp;nbsp;an&amp;nbsp;XML&amp;nbsp;file&lt;/span&gt;
&lt;br /&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(!&lt;span style="color:#008b8b"&gt;String&lt;/span&gt;.IsNullOrEmpty(Url)&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;(context.Url.Host.IndexOf(&lt;span style="color:#800000"&gt;"&lt;/span&gt;&lt;span style="color:#800000"&gt;localhost&lt;/span&gt;&lt;span style="color:#800000"&gt;"&lt;/span&gt;)&amp;nbsp;&amp;lt;&amp;nbsp;&lt;span style="color:#008080"&gt;0&lt;/span&gt;))&lt;br&gt;
&lt;img src="/img/sc/I.gif" align="top"&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;&lt;span style="color:#008b8b"&gt;HttpContext&lt;/span&gt;.Current.Response.Redirect(Url);&lt;br&gt;
&lt;img src="/img/sc/L.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align="top"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align="top"&gt;}
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
I&amp;rsquo;m not sure if this is a recommended way of doing it but it works pretty well
and in my case, the majority of settings from the code are the same regardless of
the project but you can still alter those if required &amp;ndash;as they&amp;rsquo;re not
likely to change project-project I&amp;rsquo;ve kept the settings within the web.config.
I decided to wrap Phil&amp;rsquo;s code in my own because that way if he ever releases
an update (not sure what that&amp;rsquo;d do 
&lt;abbr title="To Be Honest"&gt;
tbh
&lt;/abbr&gt;
) I could just drop the new WebException code into my project and be ready to go straight
away.
&lt;/p&gt;
&lt;p&gt;
What do you think Phil? Use or Abuse of your code ;)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/test/aggbug.ashx?id=f8b5f0eb-ba95-4c29-b4d4-55eb717df1c3" /&gt;</description>
      <comments>http://blogs.thesitedoctor.co.uk/test/CommentView,guid,f8b5f0eb-ba95-4c29-b4d4-55eb717df1c3.aspx</comments>
      <category>AJAX</category>
      <category>ASP.Net</category>
      <category>Atlas</category>
      <category>The Site Doctor</category>
      <category>Web Development</category>
    </item>
    <item>
      <trackback:ping>http://blogs.thesitedoctor.co.uk/test/Trackback.aspx?guid=395c1cad-6db7-4c5e-a196-6181e8c255f9</trackback:ping>
      <pingback:server>http://blogs.thesitedoctor.co.uk/test/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.thesitedoctor.co.uk/test/PermaLink,guid,395c1cad-6db7-4c5e-a196-6181e8c255f9.aspx</pingback:target>
      <dc:creator>Tim</dc:creator>
      <wfw:comment>http://blogs.thesitedoctor.co.uk/test/CommentView,guid,395c1cad-6db7-4c5e-a196-6181e8c255f9.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.thesitedoctor.co.uk/test/SyndicationService.asmx/GetEntryCommentsRss?guid=395c1cad-6db7-4c5e-a196-6181e8c255f9</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Being a fair way into an application that relies heavily on Atlas I wasn’t best pleased
to hear that Microsoft had done the usual comedy act of renaming the framework which
would mean we’d have to update a plethora of controls.
</p>
        <p>
Today we bit the bullet and along with a few other changes we already had planned
made the switch. It wasn’t as bad as I was expecting tbh but it wasn’t without issues.
The first issue we ran into was with Visual Studio’s Intellisense which has gone haywire,
the recommended solution is to switch quickly between Design Time and HTML View –something
that we can’t do as we’re using nested MasterPages which Visual Studio doesn’t support.
</p>
        <p>
The next issue we ran into was the fact that our onKeyPress TextBox has now stopped
working as planned but we’re looking into that.
</p>
        <p>
The main issue that we ran into this morning however was on putting the site onto
the server as we were faced with the following:
</p>
        <div class="error">
          <span>
            <h2 class="header">Server Error in '/' Application.
</h2>
            <hr color="silver" size="1" width="100%" />
            <h2>
              <i>Configuration Error</i>
            </h2>
          </span>
          <font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif ">
            <b> Description: </b>An
error occurred during the processing of a configuration file required to service this
request. Please review the specific error details below and modify your configuration
file appropriately. 
<br /><br /><b> Parser Error Message: </b>Could not load file or assembly 'Microsoft.Web.Extensions.Design,
Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its
dependencies. The system cannot find the file specified.<br /><br /><b>Source Error:</b><br /><br /><table bgcolor="#ffffcc" width="100%"><tbody><tr><td><code></code><pre>
Line 97: 			&lt;assemblies&gt;
Line 98: 				&lt;add assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/&gt;
<font color="red">Line
99: &lt;add assembly="Microsoft.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35"/&gt;<br /></font>Line 100: &lt;add assembly="System.Design, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=B03F5F7F11D50A3A"/&gt;<br />
Line 101: &lt;add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=B77A5C561934E089"/&gt;</pre></td></tr></tbody></table><br /><b> Source File: </b> **********************************************\web.config<b>   
Line: </b> 99 
<br /><br /><b>Assembly Load Trace:</b> The following information can be helpful to determine
why the assembly 'Microsoft.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35' could not be loaded.<br /><br /><table bgcolor="#ffffcc" width="100%"><tbody><tr><td><code></code><pre>WRN: Assembly binding logging is turned OFF.<br />
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog]
(DWORD) to 1.<br />
Note: There is some performance penalty associated with assembly bind failure logging.<br />
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].<br /></pre></td></tr></tbody></table><br /><hr color="silver" size="1" width="100%" /><b>Version Information:</b> Microsoft .NET Framework Version:2.0.50727.42; ASP.NET
Version:2.0.50727.42 </font>
        </div>
        <p>
The official take on this from the Microsoft guys is somewhat comical (<a href="http://forums.asp.net/thread/1455060.aspx">http://forums.asp.net/thread/1455060.aspx</a>):
</p>
        <div class="quote">
          <p>
Hi guys - yeah the problem you're having is because you installed on a machine w/o
VS.  All of our machines have VS, so we didn't catch this problem.  On a
machine w/ VS, Microsoft.Web.Extensions.Design.dll gets dropped.
</p>
          <p>
Probably the best workaround for this is to go get that file from a machine with VS
and either install it (gacutil -f Microsoft.Web.Extensions.Design.dll) or try dropping
it into the bin directory, which I believe should also work but I haven't tried it.
</p>
          <p>
 I've been talking with the AJAX team about this, so we're on top of it. 
Sorry for the confusion.
</p>
        </div>
        <p>
Not an ideal fix but at least it works! For those of you wondering where you can find
the DLL, look in: %Program Files%\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025
</p>
        <img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/test/aggbug.ashx?id=395c1cad-6db7-4c5e-a196-6181e8c255f9" />
      </body>
      <title>Atlas – AJAX Update issues (Could not load file or assembly Microsoft.Web.Extensions.Design)</title>
      <guid isPermaLink="false">http://blogs.thesitedoctor.co.uk/test/PermaLink,guid,395c1cad-6db7-4c5e-a196-6181e8c255f9.aspx</guid>
      <link>http://blogs.thesitedoctor.co.uk/test/2006/11/18/AtlasAJAXUpdateIssuesCouldNotLoadFileOrAssemblyMicrosoftWebExtensionsDesign.aspx</link>
      <pubDate>Sat, 18 Nov 2006 09:52:00 GMT</pubDate>
      <description>&lt;p&gt;
Being a fair way into an application that relies heavily on Atlas I wasn’t best pleased
to hear that Microsoft had done the usual comedy act of renaming the framework which
would mean we’d have to update a plethora of controls.
&lt;/p&gt;
&lt;p&gt;
Today we bit the bullet and along with a few other changes we already had planned
made the switch. It wasn’t as bad as I was expecting tbh but it wasn’t without issues.
The first issue we ran into was with Visual Studio’s Intellisense which has gone haywire,
the recommended solution is to switch quickly between Design Time and HTML View –something
that we can’t do as we’re using nested MasterPages which Visual Studio doesn’t support.
&lt;/p&gt;
&lt;p&gt;
The next issue we ran into was the fact that our onKeyPress TextBox has now stopped
working as planned but we’re looking into that.
&lt;/p&gt;
&lt;p&gt;
The main issue that we ran into this morning however was on putting the site onto
the server as we were faced with the following:
&lt;/p&gt;
&lt;div class="error"&gt;
&lt;span&gt;
&lt;h2 class="header"&gt;Server Error in '/' Application.
&lt;/h2&gt;
&lt;hr color="silver" size="1" width="100%"&gt;
&lt;h2&gt;
&lt;i&gt;Configuration Error&lt;/i&gt; 
&lt;/h2&gt;
&lt;/span&gt; &lt;font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif "&gt; &lt;b&gt; Description: &lt;/b&gt;An
error occurred during the processing of a configuration file required to service this
request. Please review the specific error details below and modify your configuration
file appropriately. 
&lt;br&gt;
&lt;br&gt;
&lt;b&gt; Parser Error Message: &lt;/b&gt;Could not load file or assembly 'Microsoft.Web.Extensions.Design,
Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its
dependencies. The system cannot find the file specified.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Source Error:&lt;/b&gt; 
&lt;br&gt;
&lt;br&gt;
&lt;table bgcolor="#ffffcc" width="100%"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;&lt;/code&gt;&lt;pre&gt;
Line 97: 			&amp;lt;assemblies&amp;gt;
Line 98: 				&amp;lt;add assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/&amp;gt;
&lt;font color="red"&gt;Line
99: &amp;lt;add assembly="Microsoft.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35"/&amp;gt;&lt;br&gt;
&lt;/font&gt;Line 100: &amp;lt;add assembly="System.Design, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=B03F5F7F11D50A3A"/&amp;gt;&lt;br&gt;
Line 101: &amp;lt;add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=B77A5C561934E089"/&amp;gt;&lt;/pre&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;br&gt;
&lt;b&gt; Source File: &lt;/b&gt; **********************************************\web.config&lt;b&gt; &amp;nbsp;&amp;nbsp;
Line: &lt;/b&gt; 99 
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Assembly Load Trace:&lt;/b&gt; The following information can be helpful to determine
why the assembly 'Microsoft.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35' could not be loaded.&lt;br&gt;
&lt;br&gt;
&lt;table bgcolor="#ffffcc" width="100%"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;&lt;/code&gt;&lt;pre&gt;WRN: Assembly binding logging is turned OFF.&lt;br&gt;
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog]
(DWORD) to 1.&lt;br&gt;
Note: There is some performance penalty associated with assembly bind failure logging.&lt;br&gt;
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].&lt;br&gt;
&lt;/pre&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;br&gt;
&lt;hr color="silver" size="1" width="100%"&gt;
&lt;b&gt;Version Information:&lt;/b&gt;&amp;nbsp;Microsoft .NET Framework Version:2.0.50727.42; ASP.NET
Version:2.0.50727.42 &lt;/font&gt; 
&lt;/div&gt;
&lt;p&gt;
The official take on this from the Microsoft guys is somewhat comical (&lt;a href="http://forums.asp.net/thread/1455060.aspx"&gt;http://forums.asp.net/thread/1455060.aspx&lt;/a&gt;):
&lt;/p&gt;
&lt;div class="quote"&gt;
&lt;p&gt;
Hi guys - yeah the problem you're having is because you installed on a machine w/o
VS.&amp;nbsp; All of our machines have VS, so we didn't catch this problem.&amp;nbsp; On a
machine w/ VS, Microsoft.Web.Extensions.Design.dll gets dropped.
&lt;/p&gt;
&lt;p&gt;
Probably the best workaround for this is to go get that file from a machine with VS
and either install it (gacutil -f Microsoft.Web.Extensions.Design.dll) or try dropping
it into the bin directory, which I believe should also work but I haven't tried it.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;I've been talking with the AJAX team about this, so we're on top of it.&amp;nbsp;
Sorry for the confusion.
&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;
Not an ideal fix but at least it works! For those of you wondering where you can find
the DLL, look in: %Program Files%\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/test/aggbug.ashx?id=395c1cad-6db7-4c5e-a196-6181e8c255f9" /&gt;</description>
      <comments>http://blogs.thesitedoctor.co.uk/test/CommentView,guid,395c1cad-6db7-4c5e-a196-6181e8c255f9.aspx</comments>
      <category>AJAX</category>
      <category>ASP.Net</category>
      <category>Atlas</category>
    </item>
  </channel>
</rss>