<?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>duncanMgunn.com - ASP.NET</title>
    <link>http://www.duncangunn.me.uk/dasblog/</link>
    <description />
    <language>en-us</language>
    <copyright>Duncan M Gunn</copyright>
    <lastBuildDate>Wed, 07 Jul 2010 13:30:21 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>dasblog@example.com</managingEditor>
    <webMaster>dasblog@example.com</webMaster>
    <item>
      <trackback:ping>http://www.duncangunn.me.uk/dasblog/Trackback.aspx?guid=e20b05ea-9b67-4a0b-914f-d35250d82edc</trackback:ping>
      <pingback:server>http://www.duncangunn.me.uk/dasblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.duncangunn.me.uk/dasblog/PermaLink,guid,e20b05ea-9b67-4a0b-914f-d35250d82edc.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.duncangunn.me.uk/dasblog/CommentView,guid,e20b05ea-9b67-4a0b-914f-d35250d82edc.aspx</wfw:comment>
      <wfw:commentRss>http://www.duncangunn.me.uk/dasblog/SyndicationService.asmx/GetEntryCommentsRss?guid=e20b05ea-9b67-4a0b-914f-d35250d82edc</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">If you ever get into the situation where
you've set up Roles, Users etc. on a machine and then script the database over to
another machine, and suddenly the users can't login or aren't in the roles they should
be - make sure you have specified the applicationName property in BOTH the membershipProvider
and roleProvider sections in the web.config.<br /><br /><a href="http://weblogs.asp.net/scottgu/archive/2006/04/22/Always-set-the-_2200_applicationName_2200_-property-when-configuring-ASP.NET-2.0-Membership-and-other-Providers.aspx">http://weblogs.asp.net/scottgu/archive/2006/04/22/Always-set-the-_2200_applicationName_2200_-property-when-configuring-ASP.NET-2.0-Membership-and-other-Providers.aspx</a><br /><p></p><img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=e20b05ea-9b67-4a0b-914f-d35250d82edc" /></body>
      <title>ASP.NET Membership provider - certified works on my machine</title>
      <guid isPermaLink="false">http://www.duncangunn.me.uk/dasblog/PermaLink,guid,e20b05ea-9b67-4a0b-914f-d35250d82edc.aspx</guid>
      <link>http://www.duncangunn.me.uk/dasblog/2010/07/07/ASPNETMembershipProviderCertifiedWorksOnMyMachine.aspx</link>
      <pubDate>Wed, 07 Jul 2010 13:30:21 GMT</pubDate>
      <description>If you ever get into the situation where you've set up Roles, Users etc. on a machine and then script the database over to another machine, and suddenly the users can't login or aren't in the roles they should be - make sure you have specified the applicationName property in BOTH the membershipProvider and roleProvider sections in the web.config.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://weblogs.asp.net/scottgu/archive/2006/04/22/Always-set-the-_2200_applicationName_2200_-property-when-configuring-ASP.NET-2.0-Membership-and-other-Providers.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2006/04/22/Always-set-the-_2200_applicationName_2200_-property-when-configuring-ASP.NET-2.0-Membership-and-other-Providers.aspx&lt;/a&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=e20b05ea-9b67-4a0b-914f-d35250d82edc" /&gt;</description>
      <comments>http://www.duncangunn.me.uk/dasblog/CommentView,guid,e20b05ea-9b67-4a0b-914f-d35250d82edc.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://www.duncangunn.me.uk/dasblog/Trackback.aspx?guid=ca6328e0-0914-4977-a11b-984114036565</trackback:ping>
      <pingback:server>http://www.duncangunn.me.uk/dasblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.duncangunn.me.uk/dasblog/PermaLink,guid,ca6328e0-0914-4977-a11b-984114036565.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.duncangunn.me.uk/dasblog/CommentView,guid,ca6328e0-0914-4977-a11b-984114036565.aspx</wfw:comment>
      <wfw:commentRss>http://www.duncangunn.me.uk/dasblog/SyndicationService.asmx/GetEntryCommentsRss?guid=ca6328e0-0914-4977-a11b-984114036565</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">This article presumes that you know the
backgrounds to REST and WCF, and provides a practical example of creating a RESTful
Web Service - without the help of the REST Starter Kit.<br /><br /><h1>Step 1 - Create your Web Service Library
</h1><br />
Good practice is to separate the actual service code from the service definition. 
I do this by creating two projects - a ServiceLibrary and the Service itself. 
I always start by creating the Library.<br /><br />
Create a Plain Old new C# Library.  
<br /><br />
Create your IService interface, like so:<br /><br /><pre><span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;">[ServiceContract] <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">interface</span> IService1
{ [OperationContract] <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">string</span> GetData(<span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">int</span> value);
[OperationContract] TestObject GetDataUsingDataContract(TestObject composite); [WebInvoke(UriTemplate=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"/users"</span>,
Method=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"POST"</span>)]
[OperationContract] <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">void</span> Submit(TestObject
eval); [OperationContract] [WebGet(UriTemplate=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"*"</span>)] <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">string</span> Test();
[OperationContract] [WebGet(UriTemplate <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;">"test2"</span>)] <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">string</span> Test2();
[OperationContract] [WebGet(UriTemplate=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"users"</span>)]
List&lt;TestObject&gt; Get(); [OperationContract] [WebGet(UriTemplate <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;">"users/{userid}"</span>)]
TestObject GetUser(<span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">string</span> userid);
[OperationContract] <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">void</span> Remove(<span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">string</span> id); <span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;">//
TODO: Add your service operations here</span> } <span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;">//
Use a data contract as illustrated in the sample below to add composite types to service
operations</span> [DataContract(Name=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"testobject"</span>,
Namespace <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;">""</span>)] <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">class</span> TestObject
{ [DataMember] <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">string</span> Id
{ get; set; } <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">bool</span> boolValue <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;">true</span>; <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">string</span> stringValue <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;">"Hello
"</span>; [DataMember] <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">bool</span> BoolValue
{ get { <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">return</span> boolValue;
} set { boolValue <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">=</span> value;
} } [DataMember] <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">string</span> StringValue
{ get { <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">return</span> stringValue;
} set { stringValue <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">=</span> value;
} } <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">public</span> TestObject()
{ } <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">public</span> TestObject(<span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">string</span> id, <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">string</span> val)
{ Id <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">=</span> id;
StringValue <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">=</span> val;
} }</span></pre><br />
I've also created my TestObject class here, which is the resource we will deal with
in our service.<br /><br />
As you can see, IService1 looks like a bog standard WCF service definition 
<br /><br />
Now create your concrete implementation, as so:<br /><br /><pre><span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;">[ServiceBehavior(InstanceContextMode <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">=</span> InstanceContextMode.Single)]
[AspNetCompatibilityRequirements(RequirementsMode <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">=</span> AspNetCompatibilityRequirementsMode.Allowed)] <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">class</span> Service1
: IService1 { List&lt;TestObject&gt; objects <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> List&lt;TestObject&gt;(); <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">public</span> Service1()
{ objects.Add(<span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">new</span> TestObject(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"1"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Duncan"</span>));
objects.Add(<span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">new</span> TestObject(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"2"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Joe
Bloggs"</span>)); objects.Add(<span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">new</span> TestObject(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"3"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Alice
Anderson"</span>)); } <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">string</span> GetData(<span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">int</span> value)
{ <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">return</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">string</span>.Format(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"You
entered: {0}"</span>, value); } <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">string</span> Test()
{ <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">return</span><span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Hello
World!"</span>; } <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">string</span> Test2()
{ <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">return</span><span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"We
got some REST goin' on"</span>; } <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">public</span> TestObject
GetDataUsingDataContract(TestObject composite) { <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">if</span> (composite.BoolValue)
{ composite.StringValue += <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Suffix"</span>;
} <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">return</span> composite;
} <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">void</span> Submit(TestObject
eval) { eval.Id <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">=</span> Guid.NewGuid().ToString();
objects.Add(eval); } <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">public</span> List&lt;TestObject&gt;
Get() { <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">return</span> objects;
} <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">public</span> TestObject
GetUser(<span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">string</span> userid)
{ <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">return</span> objects.Find(e
=&gt; e.Id.Equals(userid)); } <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">void</span> Remove(<span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">string</span> id)
{ objects.Remove(objects.Find(e =&gt; e.Id.Equals(id))); } }</span></pre><br />
What I've done here is create my service as a single instance, by using the InstanceContextMode
parameter in the ServiceBehaviour attribute.  This means that we can keep an
in-memory list of objects which will be preserved between calls to the service.<br /><br /><h1>Step 2 - Create your Service
</h1>
Okay, so that is the inner workings of the service created.  But all we have
is now a .NET assembly - it's still not a WCF service.  
<br /><br />
Create your service by adding a new project and selecting WCF Service Application,
like below:<h1><br /></h1><p></p><img src="http://www.duncangunn.me.uk/dasblog/content/binary/WCF_New_service.png" border="0" /><br /><br /><br />
Call it RESTService.<br /><br />
Delete everything except RESTService.svc - including the .cs files under RESTService.svc.<br /><br />
Add a project reference to the REST Service Library project you created in Step 1.<br /><br />
Edit the markup of RESTService.svc so that it looks like the following:<br /><br /><pre><span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;">&lt;%@
ServiceHost Language=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"C#"</span> Debug=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"true"</span> Service=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"RESTWCFLibrary.Service1"</span> Factory=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"System.ServiceModel.Activation.WebServiceHostFactory"</span> %&gt;</span></pre><br /><h1>Step 3 - Install into IIS and edit the bindings
</h1><br />
Now the fiddly bit.<br /><br />
Edit the web.config so that your bindings look like (most important things to note
are in <font color="#ff0000">red</font>) :<br /><br /><br />
&lt;system.serviceModel&gt;<br />
      &lt;serviceHostingEnvironment aspNetCompatibilityEnabled="true"
/&gt;<br />
      &lt;behaviors&gt;<br />
        &lt;endpointBehaviors&gt;<br />
          &lt;behavior name="RESTServiceBehavior"&gt;<br />
            <font color="#ff0000">&lt;webHttp
/&gt;</font><br />
          &lt;/behavior&gt;<br />
        &lt;/endpointBehaviors&gt;<br />
      &lt;/behaviors&gt;<br />
      &lt;services&gt;<br />
        &lt;service name="RESTWCFLibrary.Service1"&gt;<br />
          &lt;endpoint name="default"
address="" binding="basicHttpBinding" contract="RESTWCFLibrary.IService1"/&gt;<br />
          &lt;endpoint name="RESTEndpoint" <font color="#ff0000">address="REST"</font> behaviorConfiguration="RESTServiceBehavior"<br />
                  <font color="#ff0000">binding="webHttpBinding" </font><br />
                 
contract="RESTWCFLibrary.IService1"&gt;<br />
          &lt;/endpoint&gt;<br />
        &lt;/service&gt;<br />
      &lt;/services&gt;<br />
      &lt;bindings /&gt;<br />
      &lt;client /&gt;<br />
    &lt;/system.serviceModel&gt;<br /><br /><br />
REST WCF services will only work under the webHttp binding.  By adding a new
endpoint under the "REST" address, your service will be available (for REST calls)
under RestServiceName/REST/[resources here...]<br /><br />
Installing under IIS is easy.  Create a new website/vdir and point the physical
path to the directory that hosts your .svc file.  And that's it - hosted!<br /><br /><h1>Step 4 - Testing - GETs and POSTs
</h1><br />
Now to test your service.  Open a browser and enter a URL similar to the following:<br /><br /><font face="Courier New">http://localhost/restWCFSite/RESTservice.svc/rest</font><br /><br />
If you implemented your ServiceContract as above, this will hit the default method
on the Service - which is the method Test.  You should see an XML packet returned
with "Hello World!" as the string.<br /><br />
Entering the following<br /><br /><font face="Courier New">http://localhost/restWCFSite/RESTservice.svc/rest/users<br /><font face="Times New Roman"><br /><font face="Verdana">will list all the users in the 'database' and<br /><br /></font></font></font><font face="Courier New">http://localhost/restWCFSite/RESTservice.svc/rest/users/1</font><br /><font face="Courier New"><font face="Times New Roman"><font face="Verdana"><br />
will query that user by id - returning only that specified user.<br /><br />
To add data, you'll need to use Fiddler and construct the POST request yourself.<br /><br />
To do this, open up Fiddler, go to the Request Builder tab, and enter the following:<br /><br /></font></font></font><img src="http://www.duncangunn.me.uk/dasblog/content/binary/WCF_Fiddler_POST_request.png" border="0" /><br /><br /><br /><br />
Note that the attributes MUST be in upper-case, if you put &lt;stringvalue&gt; instead
of &lt;StringValue&gt; then it will not be able to parse these into the correct fields
of the testobject class.<br /><br />
Execute this request.<br /><br />
If you go back to your previous GET and list the users, you should see your new user
appear in the list.<br /><br />
That's it - your first REST service.<br /><br /><br /><br /><img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=ca6328e0-0914-4977-a11b-984114036565" /></body>
      <title>Building a RESTful service in WCF</title>
      <guid isPermaLink="false">http://www.duncangunn.me.uk/dasblog/PermaLink,guid,ca6328e0-0914-4977-a11b-984114036565.aspx</guid>
      <link>http://www.duncangunn.me.uk/dasblog/2010/05/28/BuildingARESTfulServiceInWCF.aspx</link>
      <pubDate>Fri, 28 May 2010 16:11:44 GMT</pubDate>
      <description>This article presumes that you know the backgrounds to REST and WCF, and provides a practical example of creating a RESTful Web Service - without the help of the REST Starter Kit.&lt;br&gt;
&lt;br&gt;
&lt;h1&gt;Step 1 - Create your Web Service Library
&lt;/h1&gt;
&lt;br&gt;
Good practice is to separate the actual service code from the service definition.&amp;nbsp;
I do this by creating two projects - a ServiceLibrary and the Service itself.&amp;nbsp;
I always start by creating the Library.&lt;br&gt;
&lt;br&gt;
Create a Plain Old new C# Library.&amp;nbsp; 
&lt;br&gt;
&lt;br&gt;
Create your IService interface, like so:&lt;br&gt;
&lt;br&gt;
&lt;pre&gt;&lt;span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;[ServiceContract] &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;interface&lt;/span&gt; IService1
{ [OperationContract] &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; GetData(&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;int&lt;/span&gt; value);
[OperationContract] TestObject GetDataUsingDataContract(TestObject composite); [WebInvoke(UriTemplate=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"/users"&lt;/span&gt;,
Method=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"POST"&lt;/span&gt;)]
[OperationContract] &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;void&lt;/span&gt; Submit(TestObject
eval); [OperationContract] [WebGet(UriTemplate=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"*"&lt;/span&gt;)] &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; Test();
[OperationContract] [WebGet(UriTemplate &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"test2"&lt;/span&gt;)] &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; Test2();
[OperationContract] [WebGet(UriTemplate=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"users"&lt;/span&gt;)]
List&amp;lt;TestObject&amp;gt; Get(); [OperationContract] [WebGet(UriTemplate &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"users/{userid}"&lt;/span&gt;)]
TestObject GetUser(&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; userid);
[OperationContract] &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;void&lt;/span&gt; Remove(&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; id); &lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;//
TODO: Add your service operations here&lt;/span&gt; } &lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;//
Use a data contract as illustrated in the sample below to add composite types to service
operations&lt;/span&gt; [DataContract(Name=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"testobject"&lt;/span&gt;,
Namespace &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;""&lt;/span&gt;)] &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;class&lt;/span&gt; TestObject
{ [DataMember] &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; Id
{ get; set; } &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;bool&lt;/span&gt; boolValue &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;true&lt;/span&gt;; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; stringValue &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Hello
"&lt;/span&gt;; [DataMember] &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;bool&lt;/span&gt; BoolValue
{ get { &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;return&lt;/span&gt; boolValue;
} set { boolValue &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; value;
} } [DataMember] &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; StringValue
{ get { &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;return&lt;/span&gt; stringValue;
} set { stringValue &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; value;
} } &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; TestObject()
{ } &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; TestObject(&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; id, &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; val)
{ Id &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; id;
StringValue &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; val;
} }&lt;/span&gt;&lt;/pre&gt;
&lt;br&gt;
I've also created my TestObject class here, which is the resource we will deal with
in our service.&lt;br&gt;
&lt;br&gt;
As you can see, IService1 looks like a bog standard WCF service definition 
&lt;br&gt;
&lt;br&gt;
Now create your concrete implementation, as so:&lt;br&gt;
&lt;br&gt;
&lt;pre&gt;&lt;span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;[ServiceBehavior(InstanceContextMode &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; InstanceContextMode.Single)]
[AspNetCompatibilityRequirements(RequirementsMode &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; AspNetCompatibilityRequirementsMode.Allowed)] &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;class&lt;/span&gt; Service1
: IService1 { List&amp;lt;TestObject&amp;gt; objects &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;new&lt;/span&gt; List&amp;lt;TestObject&amp;gt;(); &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; Service1()
{ objects.Add(&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;new&lt;/span&gt; TestObject(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"1"&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Duncan"&lt;/span&gt;));
objects.Add(&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;new&lt;/span&gt; TestObject(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"2"&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Joe
Bloggs"&lt;/span&gt;)); objects.Add(&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;new&lt;/span&gt; TestObject(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"3"&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Alice
Anderson"&lt;/span&gt;)); } &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; GetData(&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;int&lt;/span&gt; value)
{ &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;return&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"You
entered: {0}"&lt;/span&gt;, value); } &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; Test()
{ &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;return&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Hello
World!"&lt;/span&gt;; } &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; Test2()
{ &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;return&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"We
got some REST goin' on"&lt;/span&gt;; } &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; TestObject
GetDataUsingDataContract(TestObject composite) { &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;if&lt;/span&gt; (composite.BoolValue)
{ composite.StringValue += &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Suffix"&lt;/span&gt;;
} &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;return&lt;/span&gt; composite;
} &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;void&lt;/span&gt; Submit(TestObject
eval) { eval.Id &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; Guid.NewGuid().ToString();
objects.Add(eval); } &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; List&amp;lt;TestObject&amp;gt;
Get() { &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;return&lt;/span&gt; objects;
} &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; TestObject
GetUser(&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; userid)
{ &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;return&lt;/span&gt; objects.Find(e
=&amp;gt; e.Id.Equals(userid)); } &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;void&lt;/span&gt; Remove(&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; id)
{ objects.Remove(objects.Find(e =&amp;gt; e.Id.Equals(id))); } }&lt;/span&gt;&lt;/pre&gt;
&lt;br&gt;
What I've done here is create my service as a single instance, by using the InstanceContextMode
parameter in the ServiceBehaviour attribute.&amp;nbsp; This means that we can keep an
in-memory list of objects which will be preserved between calls to the service.&lt;br&gt;
&lt;br&gt;
&lt;h1&gt;Step 2 - Create your Service
&lt;/h1&gt;
Okay, so that is the inner workings of the service created.&amp;nbsp; But all we have
is now a .NET assembly - it's still not a WCF service.&amp;nbsp; 
&lt;br&gt;
&lt;br&gt;
Create your service by adding a new project and selecting WCF Service Application,
like below:&lt;h1&gt;
&lt;br&gt;
&lt;/h1&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img src="http://www.duncangunn.me.uk/dasblog/content/binary/WCF_New_service.png" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Call it RESTService.&lt;br&gt;
&lt;br&gt;
Delete everything except RESTService.svc - including the .cs files under RESTService.svc.&lt;br&gt;
&lt;br&gt;
Add a project reference to the REST Service Library project you created in Step 1.&lt;br&gt;
&lt;br&gt;
Edit the markup of RESTService.svc so that it looks like the following:&lt;br&gt;
&lt;br&gt;
&lt;pre&gt;&lt;span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;&amp;lt;%@
ServiceHost Language=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"C#"&lt;/span&gt; Debug=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"true"&lt;/span&gt; Service=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"RESTWCFLibrary.Service1"&lt;/span&gt; Factory=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"System.ServiceModel.Activation.WebServiceHostFactory"&lt;/span&gt; %&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br&gt;
&lt;h1&gt;Step 3 - Install into IIS and edit the bindings
&lt;/h1&gt;
&lt;br&gt;
Now the fiddly bit.&lt;br&gt;
&lt;br&gt;
Edit the web.config so that your bindings look like (most important things to note
are in &lt;font color="#ff0000"&gt;red&lt;/font&gt;) :&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&amp;lt;system.serviceModel&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;serviceHostingEnvironment aspNetCompatibilityEnabled="true"
/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;behaviors&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endpointBehaviors&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;behavior name="RESTServiceBehavior"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;&amp;lt;webHttp
/&amp;gt;&lt;/font&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/behavior&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/endpointBehaviors&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/behaviors&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;services&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;service name="RESTWCFLibrary.Service1"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endpoint name="default"
address="" binding="basicHttpBinding" contract="RESTWCFLibrary.IService1"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endpoint name="RESTEndpoint" &lt;font color="#ff0000"&gt;address="REST"&lt;/font&gt; behaviorConfiguration="RESTServiceBehavior"&lt;br&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; &lt;font color="#ff0000"&gt;binding="webHttpBinding" &lt;/font&gt;
&lt;br&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;
contract="RESTWCFLibrary.IService1"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/endpoint&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/service&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/services&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bindings /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;client /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/system.serviceModel&amp;gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
REST WCF services will only work under the webHttp binding.&amp;nbsp; By adding a new
endpoint under the "REST" address, your service will be available (for REST calls)
under RestServiceName/REST/[resources here...]&lt;br&gt;
&lt;br&gt;
Installing under IIS is easy.&amp;nbsp; Create a new website/vdir and point the physical
path to the directory that hosts your .svc file.&amp;nbsp; And that's it - hosted!&lt;br&gt;
&lt;br&gt;
&lt;h1&gt;Step 4 - Testing - GETs and POSTs
&lt;/h1&gt;
&lt;br&gt;
Now to test your service.&amp;nbsp; Open a browser and enter a URL similar to the following:&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;http://localhost/restWCFSite/RESTservice.svc/rest&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
If you implemented your ServiceContract as above, this will hit the default method
on the Service - which is the method Test.&amp;nbsp; You should see an XML packet returned
with "Hello World!" as the string.&lt;br&gt;
&lt;br&gt;
Entering the following&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;http://localhost/restWCFSite/RESTservice.svc/rest/users&lt;br&gt;
&lt;font face="Times New Roman"&gt;
&lt;br&gt;
&lt;font face="Verdana"&gt;will list all the users in the 'database' and&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;http://localhost/restWCFSite/RESTservice.svc/rest/users/1&lt;/font&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&lt;font face="Times New Roman"&gt;&lt;font face="Verdana"&gt;
&lt;br&gt;
will query that user by id - returning only that specified user.&lt;br&gt;
&lt;br&gt;
To add data, you'll need to use Fiddler and construct the POST request yourself.&lt;br&gt;
&lt;br&gt;
To do this, open up Fiddler, go to the Request Builder tab, and enter the following:&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;img src="http://www.duncangunn.me.uk/dasblog/content/binary/WCF_Fiddler_POST_request.png" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Note that the attributes MUST be in upper-case, if you put &amp;lt;stringvalue&amp;gt; instead
of &amp;lt;StringValue&amp;gt; then it will not be able to parse these into the correct fields
of the testobject class.&lt;br&gt;
&lt;br&gt;
Execute this request.&lt;br&gt;
&lt;br&gt;
If you go back to your previous GET and list the users, you should see your new user
appear in the list.&lt;br&gt;
&lt;br&gt;
That's it - your first REST service.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=ca6328e0-0914-4977-a11b-984114036565" /&gt;</description>
      <comments>http://www.duncangunn.me.uk/dasblog/CommentView,guid,ca6328e0-0914-4977-a11b-984114036565.aspx</comments>
      <category>ASP.NET</category>
      <category>wcf</category>
    </item>
    <item>
      <trackback:ping>http://www.duncangunn.me.uk/dasblog/Trackback.aspx?guid=1f37c387-cd42-4877-ab2f-964a9ab62b82</trackback:ping>
      <pingback:server>http://www.duncangunn.me.uk/dasblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.duncangunn.me.uk/dasblog/PermaLink,guid,1f37c387-cd42-4877-ab2f-964a9ab62b82.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.duncangunn.me.uk/dasblog/CommentView,guid,1f37c387-cd42-4877-ab2f-964a9ab62b82.aspx</wfw:comment>
      <wfw:commentRss>http://www.duncangunn.me.uk/dasblog/SyndicationService.asmx/GetEntryCommentsRss?guid=1f37c387-cd42-4877-ab2f-964a9ab62b82</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Right this way - <a href="http://codezest.com/archive/2008/09/06/fiddler-firefox-local-web-site-testing-easily-foxyproxy.aspx">http://codezest.com/archive/2008/09/06/fiddler-firefox-local-web-site-testing-easily-foxyproxy.aspx</a><br /><br /><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span class="Apple-style-span" style="font-family: Verdana,Arial,sans-serif; font-size: 12px; text-align: left;"><h2 style="font: bold 20px Arial,sans-serif; margin-top: 10px; margin-bottom: 1px;"><a id="viewpost_ascx_TitleUrl" title="Title of this entry." href="/archive/2008/09/06/fiddler-firefox-local-web-site-testing-easily-foxyproxy.aspx" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;">Using
Fiddler with Firefox for Local Web site Testing Easily with FoxyProxy</a></h2><div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2ff6a1c9-0f3e-4f17-bbde-ae98ce0e4344" class="wlWriterSmartContent" style="padding: 0px; margin: 0px; display: inline;">Technorati
Tags:<span class="Apple-converted-space"> </span><a href="http://technorati.com/tags/FireFox" rel="tag" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;">FireFox</a>,<a href="http://technorati.com/tags/Tools" rel="tag" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;">Tools</a></div><p>
 
</p><p>
Fiddler is one of the best tools to analyze web requests sent from a web site and
much more. Normally, using Fiddler with FireFox is a huge pain and typically does
not work well out of the box when testing localhost requests or any requests for that
matter with Fiddler through Firefox.   But by using FoxyProxy which is just
a nice plug-in to FireFox, it allows you to setup different proxies in FireFox very
easily, and you can then hook into Fiddler's proxy quickly, and start to catch requests
over the wire when testing local web applications.
</p><p>
Here is how to set up FoxyProxy for Fiddler and FireFox:
</p><p>
1. If you have not already installed<span class="Apple-converted-space"> </span><a href="http://www.fiddlertool.com/" target="_blank" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;">Fiddler</a><span class="Apple-converted-space"> </span>or<span class="Apple-converted-space"> </span><a href="http://www.mozilla.com/en-US/firefox/" target="_blank" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;">Firefox</a>,
install these first.
</p><p>
2. Download &amp; install the<span class="Apple-converted-space"> </span><a href="https://addons.mozilla.org/en-US/firefox/addon/2464" target="_blank" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;">FoxyProxy</a><span class="Apple-converted-space"> </span>plug-in
for FireFox.
</p><p>
3. Now you will need to get to the FoxyProxy options.  In FireFox, at the right-hand
corner you should see FoxyProxy running:
</p><p>
   <span class="Apple-converted-space"> </span><a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step7_4.jpg" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"><img alt="foxyproxy_step7" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step7_thumb_1.jpg" style="border-width: 0px;" border="0" height="20" width="141" /></a></p><p>
     Here it's just saying that FoxyProxy is not using any proxies
at the moment.
</p><p>
     Now right click that bar and choose "Options".
</p><p>
 
</p><p>
4. Now click the "Add New Proxy" button.  We are going to create a new proxy
instance in FoxyProxy that simply points to Fiddler's proxy BowserPAC.js config file.
</p><p>
   <span class="Apple-converted-space"> </span><a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step1_web_2.jpg" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"><img alt="foxyproxy_step1_web" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step1_web_thumb.jpg" style="border-width: 0px;" border="0" height="278" width="408" /></a></p><p>
5. First though we need to create a new pattern for this proxy instance and base it
on a localhost wildcard so that any site that you run on localhost will be also caught
when this FoxyProxy instance is running later on.
</p><p>
    So click the<span class="Apple-converted-space"> </span><strong>Patterns
Tab</strong><span class="Apple-converted-space"> </span>then<span class="Apple-converted-space"> </span><strong>Add
New Pattern</strong><span class="Apple-converted-space"> </span>button, then
input the following:
</p><p>
 
</p><p>
   <span class="Apple-converted-space"> </span><strong>Pattern
Name</strong>: localhost
</p><p>
   <span class="Apple-converted-space"> </span><strong>URL Pattern</strong>:
*localhost*
</p><p>
    and then leave the default "Whitelist" and "Wildcards" options
as is
</p><p>
   <span class="Apple-converted-space"> </span><a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step5_web_4.jpg" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"><img alt="foxyproxy_step5_web" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step5_web_thumb_1.jpg" style="border-width: 0px;" border="0" height="278" width="407" /></a></p><p>
6. Now click on the<span class="Apple-converted-space"> </span><strong>Proxy
Details</strong><span class="Apple-converted-space"> </span>tab and select<span class="Apple-converted-space"> </span><strong>Automatic
Proxy Configuration</strong>.  Here is where we are going to browse to Fiddler's
proxy config file.
</p><p>
    a) In Windows XP, Browse and select the fiddler proxy config file
located at the path
</p><p>
       <span class="Apple-converted-space"> </span><a href="file:///c:/documents%20and%20settings/YOURNAMEHERE/my%20documents/Fiddler2/scripts/browserpac.js" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;">file:///c:/documents
and settings/YOURNAMEHERE/my documents/Fiddler2/scripts/browserpac.js</a></p><p>
    b) Enable only the Notification about proxy auto-configuration
file loads
</p><p>
   <span class="Apple-converted-space"> </span><a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step3_web_2.jpg" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"><img alt="foxyproxy_step3_web" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step3_web_thumb.jpg" style="border-width: 0px;" border="0" height="305" width="408" /></a></p><p>
7. Next, click on the<span class="Apple-converted-space"> </span><strong>General</strong><span class="Apple-converted-space"> </span>tab
and fill in the following to define a name for this Proxy instance:
</p><p>
   <span class="Apple-converted-space"> </span><strong>Proxy Name</strong>:
Fiddler
</p><p>
   <span class="Apple-converted-space"> </span><strong>Enabled</strong>:
checked
</p><p>
   <span class="Apple-converted-space"> </span><strong>Animate
icons when this proxy is in use</strong><span class="Apple-converted-space"> </span>(optional):
checked
</p><p>
   <span class="Apple-converted-space"> </span><strong>Include
this proxy</strong>: checked
</p><p>
   <span class="Apple-converted-space"> </span><a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step2_web_2.jpg" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"><img alt="foxyproxy_step2_web" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step2_web_thumb.jpg" style="border-width: 0px;" border="0" height="155" width="407" /></a></p><p>
    You've just created a proxy instance for Fiddler inside FoxyProxy.
</p><p>
8. Finally click OK and go back to the "Global Settings" tab then just change the
"Statusbar Activation" left-click option to "Cycles through
</p><p>
    modes"
</p><p>
   <span class="Apple-converted-space"> </span><a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step6_web_2.jpg" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"><img alt="foxyproxy_step6_web" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step6_web_thumb.jpg" style="border-width: 0px;" border="0" height="215" width="409" /></a></p><p>
9. Now we are ready to actually use this proxy instance that we have defined in FoxyProxy.
</p><p>
    So in Firefox, look at the right-hand corner and click once on<span class="Apple-converted-space"> </span><a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step7_2.jpg" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"><img alt="foxyproxy_step7" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step7_thumb.jpg" style="border-width: 0px;" border="0" height="20" width="141" /></a><span class="Apple-converted-space"> </span>. 
That's FoxyProxy running in FireFox. 
</p><p>
    Now click on it once.
</p><p>
    Notice it will change from being disabled to the pattern status<span class="Apple-converted-space"> </span><a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/step8a_2.jpg" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"><img alt="step8a" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/step8a_thumb.jpg" style="border-width: 0px;" border="0" height="22" width="132" /></a><span class="Apple-converted-space"> </span>.
</p><p>
    Now we need to tell FoxyProxy which proxy instance (that we just
defined in options) to start using.
</p><p>
    To do this, right-click the patterns box and choose the proxy instance
you created.  So select "Use proxy Fiddler for all URLs":
</p><p>
   <span class="Apple-converted-space"> </span><a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/step8_2.jpg" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"><img alt="step8" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/step8_thumb.jpg" style="border-width: 0px;" border="0" height="125" width="306" /></a></p><p>
10. FoxyProxy has now been configured for Fiddler as the proxy, and selected as the
instance inside FireFox and it's now running the Fiddler proxy.
</p><p>
      Now we can use fiddler to capture any requests made
from FireFox on any website with no problem.
</p><p>
      You should now be seeing results in Fiddler (example
shown below) after you click around on your localhost site. 
</p><p>
      Here's how mine looks now that fiddler is capturing
any clicks made on my ASP.NET localhost web site :
</p><p>
     <span class="Apple-converted-space"> </span><a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/step10b_web_4.jpg" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"><img alt="step10b_web" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/step10b_web_thumb_1.jpg" style="border-width: 0px;" border="0" height="105" width="597" /></a> 
</p><p>
      And now we are all set. As you can see above in my
example, now you can inspect a ton of things on any requests captured in Fiddler.
</p></span></span><br /><p></p><img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=1f37c387-cd42-4877-ab2f-964a9ab62b82" /></body>
      <title>Use FoxyProxy to watch HTTP traffic in Fiddler via FireFox</title>
      <guid isPermaLink="false">http://www.duncangunn.me.uk/dasblog/PermaLink,guid,1f37c387-cd42-4877-ab2f-964a9ab62b82.aspx</guid>
      <link>http://www.duncangunn.me.uk/dasblog/2010/05/26/UseFoxyProxyToWatchHTTPTrafficInFiddlerViaFireFox.aspx</link>
      <pubDate>Wed, 26 May 2010 15:10:04 GMT</pubDate>
      <description>Right this way - &lt;a href="http://codezest.com/archive/2008/09/06/fiddler-firefox-local-web-site-testing-easily-foxyproxy.aspx"&gt;http://codezest.com/archive/2008/09/06/fiddler-firefox-local-web-site-testing-easily-foxyproxy.aspx&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana,Arial,sans-serif; font-size: 12px; text-align: left;"&gt;
&lt;h2 style="font: bold 20px Arial,sans-serif; margin-top: 10px; margin-bottom: 1px;"&gt;&lt;a id="viewpost_ascx_TitleUrl" title="Title of this entry." href="/archive/2008/09/06/fiddler-firefox-local-web-site-testing-easily-foxyproxy.aspx" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"&gt;Using
Fiddler with Firefox for Local Web site Testing Easily with FoxyProxy&lt;/a&gt;
&lt;/h2&gt;
&lt;div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2ff6a1c9-0f3e-4f17-bbde-ae98ce0e4344" class="wlWriterSmartContent" style="padding: 0px; margin: 0px; display: inline;"&gt;Technorati
Tags:&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://technorati.com/tags/FireFox" rel="tag" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"&gt;FireFox&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Tools" rel="tag" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"&gt;Tools&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Fiddler is one of the best tools to analyze web requests sent from a web site and
much more. Normally, using Fiddler with FireFox is a huge pain and typically does
not work well out of the box when testing localhost requests or any requests for that
matter with Fiddler through Firefox.&amp;nbsp;&amp;nbsp; But by using FoxyProxy which is just
a nice plug-in to FireFox, it allows you to setup different proxies in FireFox very
easily, and you can then hook into Fiddler's proxy quickly, and start to catch requests
over the wire when testing local web applications.
&lt;/p&gt;
&lt;p&gt;
Here is how to set up FoxyProxy for Fiddler and FireFox:
&lt;/p&gt;
&lt;p&gt;
1. If you have not already installed&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.fiddlertool.com/" target="_blank" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"&gt;Fiddler&lt;/a&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;or&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.mozilla.com/en-US/firefox/" target="_blank" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"&gt;Firefox&lt;/a&gt;,
install these first.
&lt;/p&gt;
&lt;p&gt;
2. Download &amp;amp; install the&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2464" target="_blank" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"&gt;FoxyProxy&lt;/a&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;plug-in
for FireFox.
&lt;/p&gt;
&lt;p&gt;
3. Now you will need to get to the FoxyProxy options.&amp;nbsp; In FireFox, at the right-hand
corner you should see FoxyProxy running:
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step7_4.jpg" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"&gt;&lt;img alt="foxyproxy_step7" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step7_thumb_1.jpg" style="border-width: 0px;" border="0" height="20" width="141"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Here it's just saying that FoxyProxy is not using any proxies
at the moment.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Now right click that bar and choose "Options".
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
4. Now click the "Add New Proxy" button.&amp;nbsp; We are going to create a new proxy
instance in FoxyProxy that simply points to Fiddler's proxy BowserPAC.js config file.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step1_web_2.jpg" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"&gt;&lt;img alt="foxyproxy_step1_web" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step1_web_thumb.jpg" style="border-width: 0px;" border="0" height="278" width="408"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
5. First though we need to create a new pattern for this proxy instance and base it
on a localhost wildcard so that any site that you run on localhost will be also caught
when this FoxyProxy instance is running later on.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; So click the&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;Patterns
Tab&lt;/strong&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;then&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;Add
New Pattern&lt;/strong&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;button, then
input the following:
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;Pattern
Name&lt;/strong&gt;: localhost
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;URL Pattern&lt;/strong&gt;:
*localhost*
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; and then leave the default "Whitelist" and "Wildcards" options
as is
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step5_web_4.jpg" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"&gt;&lt;img alt="foxyproxy_step5_web" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step5_web_thumb_1.jpg" style="border-width: 0px;" border="0" height="278" width="407"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
6. Now click on the&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;Proxy
Details&lt;/strong&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;tab and select&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;Automatic
Proxy Configuration&lt;/strong&gt;.&amp;nbsp; Here is where we are going to browse to Fiddler's
proxy config file.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; a) In Windows XP, Browse and select the fiddler proxy config file
located at the path
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="file:///c:/documents%20and%20settings/YOURNAMEHERE/my%20documents/Fiddler2/scripts/browserpac.js" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"&gt;file:///c:/documents
and settings/YOURNAMEHERE/my documents/Fiddler2/scripts/browserpac.js&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; b) Enable only the Notification about proxy auto-configuration
file loads
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step3_web_2.jpg" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"&gt;&lt;img alt="foxyproxy_step3_web" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step3_web_thumb.jpg" style="border-width: 0px;" border="0" height="305" width="408"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
7. Next, click on the&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;General&lt;/strong&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;tab
and fill in the following to define a name for this Proxy instance:
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;Proxy Name&lt;/strong&gt;:
Fiddler
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;Enabled&lt;/strong&gt;:
checked
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;Animate
icons when this proxy is in use&lt;/strong&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;(optional):
checked
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;Include
this proxy&lt;/strong&gt;: checked
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step2_web_2.jpg" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"&gt;&lt;img alt="foxyproxy_step2_web" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step2_web_thumb.jpg" style="border-width: 0px;" border="0" height="155" width="407"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; You've just created a proxy instance for Fiddler inside FoxyProxy.
&lt;/p&gt;
&lt;p&gt;
8. Finally click OK and go back to the "Global Settings" tab then just change the
"Statusbar Activation" left-click option to "Cycles through
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; modes"
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step6_web_2.jpg" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"&gt;&lt;img alt="foxyproxy_step6_web" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step6_web_thumb.jpg" style="border-width: 0px;" border="0" height="215" width="409"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
9. Now we are ready to actually use this proxy instance that we have defined in FoxyProxy.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; So in Firefox, look at the right-hand corner and click once on&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step7_2.jpg" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"&gt;&lt;img alt="foxyproxy_step7" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/foxyproxy_step7_thumb.jpg" style="border-width: 0px;" border="0" height="20" width="141"&gt;&lt;/a&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;.&amp;nbsp;
That's FoxyProxy running in FireFox.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Now click on it once.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Notice it will change from being disabled to the pattern status&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/step8a_2.jpg" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"&gt;&lt;img alt="step8a" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/step8a_thumb.jpg" style="border-width: 0px;" border="0" height="22" width="132"&gt;&lt;/a&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Now we need to tell FoxyProxy which proxy instance (that we just
defined in options) to start using.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; To do this, right-click the patterns box and choose the proxy instance
you created.&amp;nbsp; So select "Use proxy Fiddler for all URLs":
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/step8_2.jpg" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"&gt;&lt;img alt="step8" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/step8_thumb.jpg" style="border-width: 0px;" border="0" height="125" width="306"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
10. FoxyProxy has now been configured for Fiddler as the proxy, and selected as the
instance inside FireFox and it's now running the Fiddler proxy.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Now we can use fiddler to capture any requests made
from FireFox on any website with no problem.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; You should now be seeing results in Fiddler (example
shown below) after you click around on your localhost site.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Here's how mine looks now that fiddler is capturing
any clicks made on my ASP.NET localhost web site :
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/step10b_web_4.jpg" style="color: rgb(56, 145, 44); background: inherit; text-decoration: none;"&gt;&lt;img alt="step10b_web" src="http://codezest.com/images/codezest_com/WindowsLiveWriter/UsingFoxyProxytoGetFiddlerWorkingwithFir_CB69/step10b_web_thumb_1.jpg" style="border-width: 0px;" border="0" height="105" width="597"&gt;&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; And now we are all set. As you can see above in my
example, now you can inspect a ton of things on any requests captured in Fiddler.
&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=1f37c387-cd42-4877-ab2f-964a9ab62b82" /&gt;</description>
      <comments>http://www.duncangunn.me.uk/dasblog/CommentView,guid,1f37c387-cd42-4877-ab2f-964a9ab62b82.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://www.duncangunn.me.uk/dasblog/Trackback.aspx?guid=05a3ed9d-f4ec-48d6-ae56-5275404dac96</trackback:ping>
      <pingback:server>http://www.duncangunn.me.uk/dasblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.duncangunn.me.uk/dasblog/PermaLink,guid,05a3ed9d-f4ec-48d6-ae56-5275404dac96.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.duncangunn.me.uk/dasblog/CommentView,guid,05a3ed9d-f4ec-48d6-ae56-5275404dac96.aspx</wfw:comment>
      <wfw:commentRss>http://www.duncangunn.me.uk/dasblog/SyndicationService.asmx/GetEntryCommentsRss?guid=05a3ed9d-f4ec-48d6-ae56-5275404dac96</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">If your site is available under both http
and https (i.e. if you put the certificate at the ROOT level of the site for whatever
reason) then be aware that Google will index this site under both protocols. 
From what I can see a fair amount of SEOs think that this will impose the duplicate
content penalty, although personally I can't see it affecting your ranking too much.<br /><br /><br />
The main thing you have to worry about is what happens when the user requests your
page under https.  In IE, by default they may receive the "secure and non-secure
content" warning, if there are any resources being requested explicitly over http. 
The other is that the site will run slower, and resources won't be cached.<br /><br />
There are a number of solutions to this problem, and if you don't want to move your
site certificate about then you can always use an ISAPI filter to intercept the requests
and redirect them at IIS level.<br /><br />
We found IIRF, available at <a href="http://iirf.codeplex.com/">http://iirf.codeplex.com/</a> which
worked straight out the box.  Note:  Although it claims to have an install
you will have to do this manually, but it's really straightforward and the help is
comprehensive.<br /><br />
In order to do the redirect above, put the following into your .ini file (which you
place in the root of the site) :<br /><br /><pre><span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;">#
Iirf.ini # # ini file <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">for</span> IIRF
# RewriteLogLevel 1 RewriteLog F:\Inetpub\wwwroot\website\IIRF RewriteEngine ON StatusInquiry
ON IterationLimit 5 RedirectRule ^/secure/(.*) https:<span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;">//mysite.co.uk/secure/$1
[R=301]</span> RewriteCond <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">%</span>{HTTPS}
on RedirectRule ^<span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">/</span>(.*)$
http:<span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;">//mysite.co.uk/$1
[R=301]</span></span></pre><br /><br /><br />
Check the help file for instructions on this language.<br /><br /><br /><p></p><img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=05a3ed9d-f4ec-48d6-ae56-5275404dac96" /></body>
      <title>Redirecting https to http automatically</title>
      <guid isPermaLink="false">http://www.duncangunn.me.uk/dasblog/PermaLink,guid,05a3ed9d-f4ec-48d6-ae56-5275404dac96.aspx</guid>
      <link>http://www.duncangunn.me.uk/dasblog/2010/05/11/RedirectingHttpsToHttpAutomatically.aspx</link>
      <pubDate>Tue, 11 May 2010 08:36:49 GMT</pubDate>
      <description>If your site is available under both http and https (i.e. if you put the certificate at the ROOT level of the site for whatever reason) then be aware that Google will index this site under both protocols.&amp;nbsp; From what I can see a fair amount of SEOs think that this will impose the duplicate content penalty, although personally I can't see it affecting your ranking too much.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
The main thing you have to worry about is what happens when the user requests your
page under https.&amp;nbsp; In IE, by default they may receive the "secure and non-secure
content" warning, if there are any resources being requested explicitly over http.&amp;nbsp;
The other is that the site will run slower, and resources won't be cached.&lt;br&gt;
&lt;br&gt;
There are a number of solutions to this problem, and if you don't want to move your
site certificate about then you can always use an ISAPI filter to intercept the requests
and redirect them at IIS level.&lt;br&gt;
&lt;br&gt;
We found IIRF, available at &lt;a href="http://iirf.codeplex.com/"&gt;http://iirf.codeplex.com/&lt;/a&gt; which
worked straight out the box.&amp;nbsp; Note:&amp;nbsp; Although it claims to have an install
you will have to do this manually, but it's really straightforward and the help is
comprehensive.&lt;br&gt;
&lt;br&gt;
In order to do the redirect above, put the following into your .ini file (which you
place in the root of the site) :&lt;br&gt;
&lt;br&gt;
&lt;pre&gt;&lt;span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;#
Iirf.ini # # ini file &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;for&lt;/span&gt; IIRF
# RewriteLogLevel 1 RewriteLog F:\Inetpub\wwwroot\website\IIRF RewriteEngine ON StatusInquiry
ON IterationLimit 5 RedirectRule ^/secure/(.*) https:&lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;//mysite.co.uk/secure/$1
[R=301]&lt;/span&gt; RewriteCond &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;%&lt;/span&gt;{HTTPS}
on RedirectRule ^&lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;/&lt;/span&gt;(.*)$
http:&lt;span style="color: Green; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;//mysite.co.uk/$1
[R=301]&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Check the help file for instructions on this language.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=05a3ed9d-f4ec-48d6-ae56-5275404dac96" /&gt;</description>
      <comments>http://www.duncangunn.me.uk/dasblog/CommentView,guid,05a3ed9d-f4ec-48d6-ae56-5275404dac96.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://www.duncangunn.me.uk/dasblog/Trackback.aspx?guid=540a5c13-531d-4f73-9a0b-74a46c7b174a</trackback:ping>
      <pingback:server>http://www.duncangunn.me.uk/dasblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.duncangunn.me.uk/dasblog/PermaLink,guid,540a5c13-531d-4f73-9a0b-74a46c7b174a.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.duncangunn.me.uk/dasblog/CommentView,guid,540a5c13-531d-4f73-9a0b-74a46c7b174a.aspx</wfw:comment>
      <wfw:commentRss>http://www.duncangunn.me.uk/dasblog/SyndicationService.asmx/GetEntryCommentsRss?guid=540a5c13-531d-4f73-9a0b-74a46c7b174a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">There are a few subscription-only services
that allow you to check for mobile browsers so that you can service optimized content,
but you can also download this free file from CodePlex which claims to do the same.<br /><br />
I haven't tried it yet, but might be worth a look:  <a href="http://mdbf.codeplex.com/wikipage?title=Getting%20Started&amp;referringTitle=Home">http://mdbf.codeplex.com/wikipage?title=Getting%20Started&amp;referringTitle=Home</a><p></p><img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=540a5c13-531d-4f73-9a0b-74a46c7b174a" /></body>
      <title>Detecting Mobile Browsers for free</title>
      <guid isPermaLink="false">http://www.duncangunn.me.uk/dasblog/PermaLink,guid,540a5c13-531d-4f73-9a0b-74a46c7b174a.aspx</guid>
      <link>http://www.duncangunn.me.uk/dasblog/2010/04/09/DetectingMobileBrowsersForFree.aspx</link>
      <pubDate>Fri, 09 Apr 2010 13:02:09 GMT</pubDate>
      <description>There are a few subscription-only services that allow you to check for mobile browsers so that you can service optimized content, but you can also download this free file from CodePlex which claims to do the same.&lt;br&gt;
&lt;br&gt;
I haven't tried it yet, but might be worth a look:&amp;nbsp; &lt;a href="http://mdbf.codeplex.com/wikipage?title=Getting%20Started&amp;amp;referringTitle=Home"&gt;http://mdbf.codeplex.com/wikipage?title=Getting%20Started&amp;amp;referringTitle=Home&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=540a5c13-531d-4f73-9a0b-74a46c7b174a" /&gt;</description>
      <comments>http://www.duncangunn.me.uk/dasblog/CommentView,guid,540a5c13-531d-4f73-9a0b-74a46c7b174a.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://www.duncangunn.me.uk/dasblog/Trackback.aspx?guid=4e2bd6af-b47e-4f5b-a279-672cde3170b5</trackback:ping>
      <pingback:server>http://www.duncangunn.me.uk/dasblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.duncangunn.me.uk/dasblog/PermaLink,guid,4e2bd6af-b47e-4f5b-a279-672cde3170b5.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.duncangunn.me.uk/dasblog/CommentView,guid,4e2bd6af-b47e-4f5b-a279-672cde3170b5.aspx</wfw:comment>
      <wfw:commentRss>http://www.duncangunn.me.uk/dasblog/SyndicationService.asmx/GetEntryCommentsRss?guid=4e2bd6af-b47e-4f5b-a279-672cde3170b5</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">To get this, you could use an HTTP sniffing
tool like Fiddler or HTTPFox, but there may be times that you have problems with this
due to proxies etc being used in the company.<br /><br />
Thankfully there's a way to output the trace using the code below:<br /><br /><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span class="Apple-style-span" style="border-collapse: collapse; font-family: Arial,'Liberation Sans','DejaVu Sans',sans-serif; font-size: 14px; line-height: 18px; text-align: left;"><pre class="prettyprint" style="border-width: 0px; margin: 0px 0px 10px; padding: 5px; overflow: auto; font-size: 14px; vertical-align: baseline; background-color: rgb(238, 238, 238); font-family: Consolas,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New'; width: auto; max-height: 600px;"><code style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: rgb(238, 238, 238); font-family: Consolas,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New';"><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&lt;system.diagnostics&gt;</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"><br /></span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&lt;trace</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"></span><span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;">autoflush</span><span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;">=</span><span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;">"true"</span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">/&gt;</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"><br /></span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&lt;sources&gt;</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"><br />
  </span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&lt;source</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"></span><span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;">name</span><span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;">=</span><span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;">"System.Net"</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"></span><span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;">maxdatasize</span><span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;">=</span><span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;">"1024"</span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&gt;</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"><br />
    </span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&lt;listeners&gt;</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"><br />
      </span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&lt;add</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"></span><span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;">name</span><span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;">=</span><span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;">"TraceFile"</span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">/&gt;</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"><br />
    </span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&lt;/listeners&gt;</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"><br />
  </span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&lt;/source&gt;</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"><br />
  </span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&lt;source</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"></span><span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;">name</span><span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;">=</span><span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;">"System.Net.Sockets"</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"></span><span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;">maxdatasize</span><span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;">=</span><span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;">"1024"</span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&gt;</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"><br />
    </span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&lt;listeners&gt;</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"><br />
      </span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&lt;add</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"></span><span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;">name</span><span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;">=</span><span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;">"TraceFile"</span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">/&gt;</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"><br />
    </span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&lt;/listeners&gt;</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"><br />
  </span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&lt;/source&gt;</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"><br /></span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&lt;/sources&gt;</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"><br /></span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&lt;sharedListeners&gt;</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"><br />
  </span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&lt;add</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"></span><span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;">name</span><span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;">=</span><span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;">"TraceFile"</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"></span><span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;">type</span><span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;">=</span><span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;">"System.Diagnostics.TextWriterTraceListener"</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"></span><span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;">initializeData</span><span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;">=</span><span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;">"trace.log"</span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">/&gt;</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"><br /></span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&lt;/sharedListeners&gt;</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"><br /></span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&lt;switches&gt;</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"><br />
  </span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&lt;add</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"></span><span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;">name</span><span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;">=</span><span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;">"System.Net"</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"></span><span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;">value</span><span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;">=</span><span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;">"Verbose"</span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">/&gt;</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"><br />
  </span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&lt;add</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"></span><span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;">name</span><span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;">=</span><span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;">"System.Net.Sockets"</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"></span><span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;">value</span><span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;">=</span><span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;">"Verbose"</span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">/&gt;</span><span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"><br /></span><span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;">&lt;/switches&gt;<br />
&lt;/system.diagnostics&gt;<br /></span></code></pre></span></span><br /><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span class="Apple-style-span" style="border-collapse: collapse; font-family: Arial,'Liberation Sans','DejaVu Sans',sans-serif; font-size: 14px; line-height: 18px; text-align: left;"></span></span><br /><br />
Acknowledgements to the following post:<br /><br /><a href="http://stackoverflow.com/questions/300674/getting-raw-soap-data-from-a-web-reference-client-running-in-aspnet">http://stackoverflow.com/questions/300674/getting-raw-soap-data-from-a-web-reference-client-running-in-aspnet</a><br /><p></p><img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=4e2bd6af-b47e-4f5b-a279-672cde3170b5" /></body>
      <title>Get the Raw SOAP Request and Response on a Web Service call</title>
      <guid isPermaLink="false">http://www.duncangunn.me.uk/dasblog/PermaLink,guid,4e2bd6af-b47e-4f5b-a279-672cde3170b5.aspx</guid>
      <link>http://www.duncangunn.me.uk/dasblog/2010/01/27/GetTheRawSOAPRequestAndResponseOnAWebServiceCall.aspx</link>
      <pubDate>Wed, 27 Jan 2010 12:20:01 GMT</pubDate>
      <description>To get this, you could use an HTTP sniffing tool like Fiddler or HTTPFox, but there may be times that you have problems with this due to proxies etc being used in the company.&lt;br&gt;
&lt;br&gt;
Thankfully there's a way to output the trace using the code below:&lt;br&gt;
&lt;br&gt;
&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: Arial,'Liberation Sans','DejaVu Sans',sans-serif; font-size: 14px; line-height: 18px; text-align: left;"&gt;&lt;pre class="prettyprint" style="border-width: 0px; margin: 0px 0px 10px; padding: 5px; overflow: auto; font-size: 14px; vertical-align: baseline; background-color: rgb(238, 238, 238); font-family: Consolas,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New'; width: auto; max-height: 600px;"&gt;&lt;code style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: rgb(238, 238, 238); font-family: Consolas,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New';"&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;lt;system.diagnostics&amp;gt;&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;
&lt;br&gt;
&lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;lt;trace&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt; &lt;/span&gt;&lt;span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;"&gt;autoflush&lt;/span&gt;&lt;span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;=&lt;/span&gt;&lt;span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;"&gt;"true"&lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;
&lt;br&gt;
&lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;lt;sources&amp;gt;&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;
&lt;br&gt;
&amp;nbsp; &lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;lt;source&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt; &lt;/span&gt;&lt;span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;"&gt;name&lt;/span&gt;&lt;span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;=&lt;/span&gt;&lt;span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;"&gt;"System.Net"&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt; &lt;/span&gt;&lt;span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;"&gt;maxdatasize&lt;/span&gt;&lt;span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;=&lt;/span&gt;&lt;span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;"&gt;"1024"&lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;lt;listeners&amp;gt;&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;lt;add&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt; &lt;/span&gt;&lt;span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;"&gt;name&lt;/span&gt;&lt;span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;=&lt;/span&gt;&lt;span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;"&gt;"TraceFile"&lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;lt;/listeners&amp;gt;&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;
&lt;br&gt;
&amp;nbsp; &lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;lt;/source&amp;gt;&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;
&lt;br&gt;
&amp;nbsp; &lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;lt;source&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt; &lt;/span&gt;&lt;span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;"&gt;name&lt;/span&gt;&lt;span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;=&lt;/span&gt;&lt;span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;"&gt;"System.Net.Sockets"&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt; &lt;/span&gt;&lt;span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;"&gt;maxdatasize&lt;/span&gt;&lt;span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;=&lt;/span&gt;&lt;span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;"&gt;"1024"&lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;lt;listeners&amp;gt;&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;lt;add&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt; &lt;/span&gt;&lt;span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;"&gt;name&lt;/span&gt;&lt;span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;=&lt;/span&gt;&lt;span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;"&gt;"TraceFile"&lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;lt;/listeners&amp;gt;&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;
&lt;br&gt;
&amp;nbsp; &lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;lt;/source&amp;gt;&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;
&lt;br&gt;
&lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;lt;/sources&amp;gt;&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;
&lt;br&gt;
&lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;lt;sharedListeners&amp;gt;&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;
&lt;br&gt;
&amp;nbsp; &lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;lt;add&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt; &lt;/span&gt;&lt;span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;"&gt;name&lt;/span&gt;&lt;span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;=&lt;/span&gt;&lt;span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;"&gt;"TraceFile"&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt; &lt;/span&gt;&lt;span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;"&gt;type&lt;/span&gt;&lt;span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;=&lt;/span&gt;&lt;span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;"&gt;"System.Diagnostics.TextWriterTraceListener"&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt; &lt;/span&gt;&lt;span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;"&gt;initializeData&lt;/span&gt;&lt;span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;=&lt;/span&gt;&lt;span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;"&gt;"trace.log"&lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;
&lt;br&gt;
&lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;lt;/sharedListeners&amp;gt;&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;
&lt;br&gt;
&lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;lt;switches&amp;gt;&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;
&lt;br&gt;
&amp;nbsp; &lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;lt;add&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt; &lt;/span&gt;&lt;span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;"&gt;name&lt;/span&gt;&lt;span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;=&lt;/span&gt;&lt;span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;"&gt;"System.Net"&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt; &lt;/span&gt;&lt;span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;"&gt;value&lt;/span&gt;&lt;span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;=&lt;/span&gt;&lt;span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;"&gt;"Verbose"&lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;
&lt;br&gt;
&amp;nbsp; &lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;lt;add&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt; &lt;/span&gt;&lt;span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;"&gt;name&lt;/span&gt;&lt;span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;=&lt;/span&gt;&lt;span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;"&gt;"System.Net.Sockets"&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt; &lt;/span&gt;&lt;span class="atn" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: red;"&gt;value&lt;/span&gt;&lt;span class="pun" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;=&lt;/span&gt;&lt;span class="atv" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: blue;"&gt;"Verbose"&lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="pln" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: black;"&gt;
&lt;br&gt;
&lt;/span&gt;&lt;span class="tag" style="border-width: 0px; margin: 0px; padding: 0px; font-size: 14px; vertical-align: baseline; background-color: transparent; color: maroon;"&gt;&amp;lt;/switches&amp;gt;&lt;br&gt;
&amp;lt;/system.diagnostics&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;br&gt;
&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: Arial,'Liberation Sans','DejaVu Sans',sans-serif; font-size: 14px; line-height: 18px; text-align: left;"&gt;&lt;/span&gt;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
Acknowledgements to the following post:&lt;br&gt;
&lt;br&gt;
&lt;a href="http://stackoverflow.com/questions/300674/getting-raw-soap-data-from-a-web-reference-client-running-in-aspnet"&gt;http://stackoverflow.com/questions/300674/getting-raw-soap-data-from-a-web-reference-client-running-in-aspnet&lt;/a&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=4e2bd6af-b47e-4f5b-a279-672cde3170b5" /&gt;</description>
      <comments>http://www.duncangunn.me.uk/dasblog/CommentView,guid,4e2bd6af-b47e-4f5b-a279-672cde3170b5.aspx</comments>
      <category>ASP.NET</category>
      <category>c#</category>
    </item>
    <item>
      <trackback:ping>http://www.duncangunn.me.uk/dasblog/Trackback.aspx?guid=6f96b53d-50f1-45cb-93d4-19224e71463f</trackback:ping>
      <pingback:server>http://www.duncangunn.me.uk/dasblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.duncangunn.me.uk/dasblog/PermaLink,guid,6f96b53d-50f1-45cb-93d4-19224e71463f.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.duncangunn.me.uk/dasblog/CommentView,guid,6f96b53d-50f1-45cb-93d4-19224e71463f.aspx</wfw:comment>
      <wfw:commentRss>http://www.duncangunn.me.uk/dasblog/SyndicationService.asmx/GetEntryCommentsRss?guid=6f96b53d-50f1-45cb-93d4-19224e71463f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">I tend to use ViewState in most of my web
applications, but when it comes to web sites there's rarely a need for them across
all pages.  In fact for some sites it can be switched off altogether.<br /><br />
However, even setting this in the web.config as so<br /><br />
&lt;pages enableSessionState="false" enableViewState="false"&gt;<br /><br />
when you View Source there's still a __VIEWSTATE hidden input field.<br /><br />
Expected behaviour - as documented <a href="http://www.vistax64.com/net-general/180254-disable-viewstate.html">here</a>. 
<br /><p></p><img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=6f96b53d-50f1-45cb-93d4-19224e71463f" /></body>
      <title>Disable ViewState - but it's still there</title>
      <guid isPermaLink="false">http://www.duncangunn.me.uk/dasblog/PermaLink,guid,6f96b53d-50f1-45cb-93d4-19224e71463f.aspx</guid>
      <link>http://www.duncangunn.me.uk/dasblog/2010/01/06/DisableViewStateButItsStillThere.aspx</link>
      <pubDate>Wed, 06 Jan 2010 21:20:44 GMT</pubDate>
      <description>I tend to use ViewState in most of my web applications, but when it comes to web sites there's rarely a need for them across all pages.&amp;nbsp; In fact for some sites it can be switched off altogether.&lt;br&gt;
&lt;br&gt;
However, even setting this in the web.config as so&lt;br&gt;
&lt;br&gt;
&amp;lt;pages enableSessionState="false" enableViewState="false"&amp;gt;&lt;br&gt;
&lt;br&gt;
when you View Source there's still a __VIEWSTATE hidden input field.&lt;br&gt;
&lt;br&gt;
Expected behaviour - as documented &lt;a href="http://www.vistax64.com/net-general/180254-disable-viewstate.html"&gt;here&lt;/a&gt;. 
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=6f96b53d-50f1-45cb-93d4-19224e71463f" /&gt;</description>
      <comments>http://www.duncangunn.me.uk/dasblog/CommentView,guid,6f96b53d-50f1-45cb-93d4-19224e71463f.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://www.duncangunn.me.uk/dasblog/Trackback.aspx?guid=83900cde-c091-4842-ad20-b965dcf348d6</trackback:ping>
      <pingback:server>http://www.duncangunn.me.uk/dasblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.duncangunn.me.uk/dasblog/PermaLink,guid,83900cde-c091-4842-ad20-b965dcf348d6.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.duncangunn.me.uk/dasblog/CommentView,guid,83900cde-c091-4842-ad20-b965dcf348d6.aspx</wfw:comment>
      <wfw:commentRss>http://www.duncangunn.me.uk/dasblog/SyndicationService.asmx/GetEntryCommentsRss?guid=83900cde-c091-4842-ad20-b965dcf348d6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">If we need to set an ASP.NET Literal with
escaped HTML encoded via javascript's escape() method, we need to use Server.UrlDecode
rather than Server.HtmlDecode.<br /><p></p><img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=83900cde-c091-4842-ad20-b965dcf348d6" /></body>
      <title>Using javascript escape and ASP.NET Literal controls</title>
      <guid isPermaLink="false">http://www.duncangunn.me.uk/dasblog/PermaLink,guid,83900cde-c091-4842-ad20-b965dcf348d6.aspx</guid>
      <link>http://www.duncangunn.me.uk/dasblog/2009/12/17/UsingJavascriptEscapeAndASPNETLiteralControls.aspx</link>
      <pubDate>Thu, 17 Dec 2009 16:14:48 GMT</pubDate>
      <description>If we need to set an ASP.NET Literal with escaped HTML encoded via javascript's escape() method, we need to use Server.UrlDecode rather than Server.HtmlDecode.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=83900cde-c091-4842-ad20-b965dcf348d6" /&gt;</description>
      <comments>http://www.duncangunn.me.uk/dasblog/CommentView,guid,83900cde-c091-4842-ad20-b965dcf348d6.aspx</comments>
      <category>ASP.NET</category>
      <category>Javascript</category>
    </item>
    <item>
      <trackback:ping>http://www.duncangunn.me.uk/dasblog/Trackback.aspx?guid=3dfddfc8-701c-4638-b7c7-c8ebc16adc23</trackback:ping>
      <pingback:server>http://www.duncangunn.me.uk/dasblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.duncangunn.me.uk/dasblog/PermaLink,guid,3dfddfc8-701c-4638-b7c7-c8ebc16adc23.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.duncangunn.me.uk/dasblog/CommentView,guid,3dfddfc8-701c-4638-b7c7-c8ebc16adc23.aspx</wfw:comment>
      <wfw:commentRss>http://www.duncangunn.me.uk/dasblog/SyndicationService.asmx/GetEntryCommentsRss?guid=3dfddfc8-701c-4638-b7c7-c8ebc16adc23</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">And yes it was.<br /><br />
Turns out I was adding a style in my code-behind, like this:<br /><br />
              
spanImage.Style.Add("background", "url(" + imagesFolder + imgFileName + ")" + " no-repeat;");<br /><br />
The HTML in front, the span already had the background property set.<br /><br />
In IE, the browser happily interprets this as a last-one-in-wins, as so:<br /><br /><span class="HTML_TXT"><span class="HTML_TAG">&lt;<span class="HTML_ELM">span</span><span class="HTML_ATR">id</span>=<span class="HTML_VAL">"Template_ctl25_contentImageRight_spanImage"</span><span class="HTML_ATR">class</span>=<span class="HTML_VAL">"frame-video
float-left"</span><span class="HTML_ATR">style</span>=<span class="HTML_VAL">"background-image:url(_includes/images/content/pictures/pic1.jpg);background:url(/RFL2010/images/about.jpg)
no-repeat;;"</span>&gt;</span></span><br /><br />
whereas FF 'chokes' (correctly?) and disregards the invalid second attempt to set
the background.<br /><br />
There will be a genuine technical explanation for this, if anyone knows then feel
free to leave a comment!<br /><p></p><img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=3dfddfc8-701c-4638-b7c7-c8ebc16adc23" /></body>
      <title>Something works in IE but not in FF?? Must be a mistake!</title>
      <guid isPermaLink="false">http://www.duncangunn.me.uk/dasblog/PermaLink,guid,3dfddfc8-701c-4638-b7c7-c8ebc16adc23.aspx</guid>
      <link>http://www.duncangunn.me.uk/dasblog/2009/12/09/SomethingWorksInIEButNotInFFMustBeAMistake.aspx</link>
      <pubDate>Wed, 09 Dec 2009 18:39:18 GMT</pubDate>
      <description>And yes it was.&lt;br&gt;
&lt;br&gt;
Turns out I was adding a style in my code-behind, like this:&lt;br&gt;
&lt;br&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;
spanImage.Style.Add("background", "url(" + imagesFolder + imgFileName + ")" + " no-repeat;");&lt;br&gt;
&lt;br&gt;
The HTML in front, the span already had the background property set.&lt;br&gt;
&lt;br&gt;
In IE, the browser happily interprets this as a last-one-in-wins, as so:&lt;br&gt;
&lt;br&gt;
&lt;span class="HTML_TXT"&gt;&lt;span class="HTML_TAG"&gt;&amp;lt;&lt;span class="HTML_ELM"&gt;span&lt;/span&gt; &lt;span class="HTML_ATR"&gt;id&lt;/span&gt;=&lt;span class="HTML_VAL"&gt;"Template_ctl25_contentImageRight_spanImage"&lt;/span&gt; &lt;span class="HTML_ATR"&gt;class&lt;/span&gt;=&lt;span class="HTML_VAL"&gt;"frame-video
float-left"&lt;/span&gt; &lt;span class="HTML_ATR"&gt;style&lt;/span&gt;=&lt;span class="HTML_VAL"&gt;"background-image:url(_includes/images/content/pictures/pic1.jpg);background:url(/RFL2010/images/about.jpg)
no-repeat;;"&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; 
&lt;br&gt;
&lt;br&gt;
whereas FF 'chokes' (correctly?) and disregards the invalid second attempt to set
the background.&lt;br&gt;
&lt;br&gt;
There will be a genuine technical explanation for this, if anyone knows then feel
free to leave a comment!&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=3dfddfc8-701c-4638-b7c7-c8ebc16adc23" /&gt;</description>
      <comments>http://www.duncangunn.me.uk/dasblog/CommentView,guid,3dfddfc8-701c-4638-b7c7-c8ebc16adc23.aspx</comments>
      <category>ASP.NET</category>
      <category>Web Design</category>
    </item>
    <item>
      <trackback:ping>http://www.duncangunn.me.uk/dasblog/Trackback.aspx?guid=0c5d26fe-2868-48b7-b16e-cfffde90e344</trackback:ping>
      <pingback:server>http://www.duncangunn.me.uk/dasblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.duncangunn.me.uk/dasblog/PermaLink,guid,0c5d26fe-2868-48b7-b16e-cfffde90e344.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.duncangunn.me.uk/dasblog/CommentView,guid,0c5d26fe-2868-48b7-b16e-cfffde90e344.aspx</wfw:comment>
      <wfw:commentRss>http://www.duncangunn.me.uk/dasblog/SyndicationService.asmx/GetEntryCommentsRss?guid=0c5d26fe-2868-48b7-b16e-cfffde90e344</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">See http://www.west-wind.com/weblog/posts/269.aspx
Request Property Function and Example ApplicationPath Returns the a Web server relative
path to your application root /WestwindWebStore/ PhysicalApplicationPath Returns a
local file system path to your application root D:\inetpub\wwwroot\WestWindWebStore\
PhysicalPath Returns the full file system path to the currently executing script D:\inetpub\wwwroot\WestWindWebStore\Item.aspx
CurrentExecutionFilePath FilePath Path In most situations all of these return the
virtual path to the currently executing script relative to the Web Server root. /WestwindWebStore/item.aspx
PathInfo Returns any extra path following the script name. Rarely used – this value
is usually blank. /WestwindWebStore/item.aspx/ExtraPathInfo RawUrl Returns the application
relative URL including querystring or pathinfo /WestwindWebStore/item.aspx?sku=WWHELP30
Url Returns the fully qualified URL including domain and protocol http://www.west-wind.com/Webstore/item.aspx?sku=WWHELP30
Page.TemplateSourceDirectory Control.TemplateSourceDirectory Returns the virtual path
of the currently executing control (or page). Very useful if you need to know the
location of your ASCX control instead of the location of the page. /WestwindWebStore/admin
It's also advised to replace any "//" to "/", so that sites will work as virtual directories
under Default Web Site, and also straight off a direct web site. string imagesFolder
= HttpContext.Current.Request.ApplicationPath + "images/"; imagesFolder = imagesFolder.Replace("//",
"/"); <img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=0c5d26fe-2868-48b7-b16e-cfffde90e344" /></body>
      <title>ASP.NET Paths</title>
      <guid isPermaLink="false">http://www.duncangunn.me.uk/dasblog/PermaLink,guid,0c5d26fe-2868-48b7-b16e-cfffde90e344.aspx</guid>
      <link>http://www.duncangunn.me.uk/dasblog/2009/12/07/ASPNETPaths.aspx</link>
      <pubDate>Mon, 07 Dec 2009 14:34:00 GMT</pubDate>
      <description>See http://www.west-wind.com/weblog/posts/269.aspx

Request Property
Function and Example
ApplicationPath
Returns the a Web server relative path to your application root
/WestwindWebStore/
PhysicalApplicationPath
Returns a local file system path to your application root
D:\inetpub\wwwroot\WestWindWebStore\
PhysicalPath
Returns the full file system path to the currently executing script
D:\inetpub\wwwroot\WestWindWebStore\Item.aspx
CurrentExecutionFilePath
FilePath
Path
In most situations all of these return the virtual path to the currently executing script relative to the Web Server root.
/WestwindWebStore/item.aspx
PathInfo
Returns any extra path following the script name. Rarely used – this value is usually blank.
/WestwindWebStore/item.aspx/ExtraPathInfo
RawUrl
Returns the application relative URL including querystring or pathinfo
/WestwindWebStore/item.aspx?sku=WWHELP30
Url
Returns the fully qualified URL including domain and protocol
http://www.west-wind.com/Webstore/item.aspx?sku=WWHELP30  
Page.TemplateSourceDirectory
Control.TemplateSourceDirectory
Returns the virtual path of the currently executing control (or page). Very useful if you need to know the location of your ASCX control instead of the location of the page.
/WestwindWebStore/admin


It's also advised to replace any "//" to "/", so that sites will work as virtual directories under Default Web Site, and also straight off a direct web site.


               string imagesFolder = HttpContext.Current.Request.ApplicationPath + "images/";
                imagesFolder = imagesFolder.Replace("//", "/");      
&lt;img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=0c5d26fe-2868-48b7-b16e-cfffde90e344" /&gt;</description>
      <comments>http://www.duncangunn.me.uk/dasblog/CommentView,guid,0c5d26fe-2868-48b7-b16e-cfffde90e344.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://www.duncangunn.me.uk/dasblog/Trackback.aspx?guid=e2e50274-e95d-4893-b82f-ad1f256d67d2</trackback:ping>
      <pingback:server>http://www.duncangunn.me.uk/dasblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.duncangunn.me.uk/dasblog/PermaLink,guid,e2e50274-e95d-4893-b82f-ad1f256d67d2.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.duncangunn.me.uk/dasblog/CommentView,guid,e2e50274-e95d-4893-b82f-ad1f256d67d2.aspx</wfw:comment>
      <wfw:commentRss>http://www.duncangunn.me.uk/dasblog/SyndicationService.asmx/GetEntryCommentsRss?guid=e2e50274-e95d-4893-b82f-ad1f256d67d2</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Came a cropper with this today. Wired up a $.ajax() event to my [button] thinking
that all should be well. 
</p>
        <p>
Couldn't understand why the ajax call was terminating BEFORE the code on the server
side was being called, even though the server side code was actually being called! 
</p>
        <p>
Should have known this, but [button] behaves as a Submit button under all browsers
except IE, if you don't mark the "type" attribute. 
</p>
        <p>
See http://www.w3schools.com/tags/tag_button.asp for more info
</p>
        <img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=e2e50274-e95d-4893-b82f-ad1f256d67d2" />
      </body>
      <title>button and input type=button</title>
      <guid isPermaLink="false">http://www.duncangunn.me.uk/dasblog/PermaLink,guid,e2e50274-e95d-4893-b82f-ad1f256d67d2.aspx</guid>
      <link>http://www.duncangunn.me.uk/dasblog/2009/09/03/buttonAndInputTypebutton.aspx</link>
      <pubDate>Thu, 03 Sep 2009 14:33:52 GMT</pubDate>
      <description>&lt;p&gt;
Came a cropper with this today. Wired up a $.ajax() event to my [button] thinking
that all should be well. 
&lt;/p&gt;
&lt;p&gt;
Couldn't understand why the ajax call was terminating BEFORE the code on the server
side was being called, even though the server side code was actually being called! 
&lt;/p&gt;
&lt;p&gt;
Should have known this, but [button] behaves as a Submit button under all browsers
except IE, if you don't mark the "type" attribute. 
&lt;/p&gt;
&lt;p&gt;
See http://www.w3schools.com/tags/tag_button.asp for more info
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=e2e50274-e95d-4893-b82f-ad1f256d67d2" /&gt;</description>
      <comments>http://www.duncangunn.me.uk/dasblog/CommentView,guid,e2e50274-e95d-4893-b82f-ad1f256d67d2.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://www.duncangunn.me.uk/dasblog/Trackback.aspx?guid=9dcaf74c-e745-4797-9c80-e692ed10bbea</trackback:ping>
      <pingback:server>http://www.duncangunn.me.uk/dasblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.duncangunn.me.uk/dasblog/PermaLink,guid,9dcaf74c-e745-4797-9c80-e692ed10bbea.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.duncangunn.me.uk/dasblog/CommentView,guid,9dcaf74c-e745-4797-9c80-e692ed10bbea.aspx</wfw:comment>
      <wfw:commentRss>http://www.duncangunn.me.uk/dasblog/SyndicationService.asmx/GetEntryCommentsRss?guid=9dcaf74c-e745-4797-9c80-e692ed10bbea</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Some quick notes on some recent research.<br /><br />
Specify pages which should redirect from http to https programatically, which can
help out in a test/staging environment:<br /><a temp_href=" http://www.codeproject.com/KB/web-security/WebPageSecurity_v2.aspx" href="%20http://www.codeproject.com/KB/web-security/WebPageSecurity_v2.aspx"><br /></a><a href="http://www.codeproject.com/KB/web-security/WebPageSecurity_v2.aspx">http://www.codeproject.com/KB/web-security/WebPageSecurity_v2.aspx</a><br /><br /><a href="http://weblogs.asp.net/pwilson/archive/2004/12/23/331455.aspx">http://weblogs.asp.net/pwilson/archive/2004/12/23/331455.aspx</a><br /><br /><br /><font size="4">Cross-Domain Scripting, IFrames, SOP (Single Origin Policy) and JSONP</font><br /><br /><a href="http://remysharp.com/2007/10/08/what-is-jsonp/">http://remysharp.com/2007/10/08/what-is-jsonp/</a><br /><br /><a href="http://www.zackgrossbart.com/hackito/jsonp-sop/">http://www.zackgrossbart.com/hackito/jsonp-sop/</a><br /><br /><a href="http://sazbean.com/2009/02/11/json_and_the_argonauts/">http://sazbean.com/2009/02/11/json_and_the_argonauts/</a><br /><a temp_href=" http://softwareas.com/cross-domain-communication-with-iframes" href="%20http://softwareas.com/cross-domain-communication-with-iframes"><br /><a href="http://softwareas.com/cross-domain-communication-with-iframes">http://softwareas.com/cross-domain-communication-with-iframes</a></a><br /><br />
Embedding a script from another domain into your page (example GoogleAnalytics):<br /><br /><pre><span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;">&lt;script
type=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"text/javascript"</span>&gt; <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">var</span> gaJsHost <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;">"https:"</span> ==
document.location.protocol) ? <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"https://ssl
"</span> : <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"http://www
"</span>); document.<span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">write</span>(<span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">unescape</span>(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"%3Cscript
src='"</span><span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">+</span> gaJsHost <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;">"google-analytics.com/ga.js'
type='text/javascript'%3E%3C/script%3E"</span>)); &lt;/script&gt; &lt;script type=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"text/javascript"</span>&gt; <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">var</span> pageTracker <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> _gat._getTracker(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"UA-xxxxxx-x"</span>);
pageTracker._trackPageview(); &lt;/script&gt; </span></pre><br /><p></p><img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=9dcaf74c-e745-4797-9c80-e692ed10bbea" /></body>
      <title>SOP, SSL, JSONP </title>
      <guid isPermaLink="false">http://www.duncangunn.me.uk/dasblog/PermaLink,guid,9dcaf74c-e745-4797-9c80-e692ed10bbea.aspx</guid>
      <link>http://www.duncangunn.me.uk/dasblog/2009/06/24/SOPSSLJSONP.aspx</link>
      <pubDate>Wed, 24 Jun 2009 21:09:17 GMT</pubDate>
      <description>Some quick notes on some recent research.&lt;br&gt;
&lt;br&gt;
Specify pages which should redirect from http to https programatically, which can
help out in a test/staging environment:&lt;br&gt;
&lt;a temp_href=" http://www.codeproject.com/KB/web-security/WebPageSecurity_v2.aspx" href="%20http://www.codeproject.com/KB/web-security/WebPageSecurity_v2.aspx"&gt;
&lt;br&gt;
&lt;/a&gt;&lt;a href="http://www.codeproject.com/KB/web-security/WebPageSecurity_v2.aspx"&gt;http://www.codeproject.com/KB/web-security/WebPageSecurity_v2.aspx&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;a href="http://weblogs.asp.net/pwilson/archive/2004/12/23/331455.aspx"&gt;http://weblogs.asp.net/pwilson/archive/2004/12/23/331455.aspx&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;font size="4"&gt;Cross-Domain Scripting, IFrames, SOP (Single Origin Policy) and JSONP&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
&lt;a href="http://remysharp.com/2007/10/08/what-is-jsonp/"&gt;http://remysharp.com/2007/10/08/what-is-jsonp/&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.zackgrossbart.com/hackito/jsonp-sop/"&gt;http://www.zackgrossbart.com/hackito/jsonp-sop/&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;a href="http://sazbean.com/2009/02/11/json_and_the_argonauts/"&gt;http://sazbean.com/2009/02/11/json_and_the_argonauts/&lt;/a&gt;
&lt;br&gt;
&lt;a temp_href=" http://softwareas.com/cross-domain-communication-with-iframes" href="%20http://softwareas.com/cross-domain-communication-with-iframes"&gt;
&lt;br&gt;
&lt;a href="http://softwareas.com/cross-domain-communication-with-iframes"&gt;http://softwareas.com/cross-domain-communication-with-iframes&lt;/a&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
Embedding a script from another domain into your page (example GoogleAnalytics):&lt;br&gt;
&lt;br&gt;
&lt;pre&gt;&lt;span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;&amp;lt;script
type=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"text/javascript"&lt;/span&gt;&amp;gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;var&lt;/span&gt; gaJsHost &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; ((&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"https:"&lt;/span&gt; ==
document.location.protocol) ? &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"https://ssl
"&lt;/span&gt; : &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"http://www
"&lt;/span&gt;); document.&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;write&lt;/span&gt;(&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;unescape&lt;/span&gt;(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"%3Cscript
src='"&lt;/span&gt; &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;+&lt;/span&gt; gaJsHost &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;+&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"google-analytics.com/ga.js'
type='text/javascript'%3E%3C/script%3E"&lt;/span&gt;)); &amp;lt;/script&amp;gt; &amp;lt;script type=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"text/javascript"&lt;/span&gt;&amp;gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;var&lt;/span&gt; pageTracker &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; _gat._getTracker(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"UA-xxxxxx-x"&lt;/span&gt;);
pageTracker._trackPageview(); &amp;lt;/script&amp;gt; &lt;/span&gt;&lt;/pre&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=9dcaf74c-e745-4797-9c80-e692ed10bbea" /&gt;</description>
      <comments>http://www.duncangunn.me.uk/dasblog/CommentView,guid,9dcaf74c-e745-4797-9c80-e692ed10bbea.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://www.duncangunn.me.uk/dasblog/Trackback.aspx?guid=af6b2132-b10d-4027-9c9e-a057bd0b12ce</trackback:ping>
      <pingback:server>http://www.duncangunn.me.uk/dasblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.duncangunn.me.uk/dasblog/PermaLink,guid,af6b2132-b10d-4027-9c9e-a057bd0b12ce.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.duncangunn.me.uk/dasblog/CommentView,guid,af6b2132-b10d-4027-9c9e-a057bd0b12ce.aspx</wfw:comment>
      <wfw:commentRss>http://www.duncangunn.me.uk/dasblog/SyndicationService.asmx/GetEntryCommentsRss?guid=af6b2132-b10d-4027-9c9e-a057bd0b12ce</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Not a nice and easy topic for Saturday
breakfast, I'll agree.<br /><br />
We've been looking at improving the <b>responsiveness </b>and <b>throughput</b> of
our web application.  There is a significant amount of processing and database
I/O done on the application-layer, in a COM+ Server.  You can see where this
is going, I'm sure.<br /><br />
I won't go in to the technical details, but suffice to say the logical step is to
make use of Asynchronous pages in ASP.NET.  This <a href="http://msdn.microsoft.com/en-us/magazine/cc164128.aspx">article</a> explains
what we <b>needed</b> to do to make this happen, in addition to using custom threads
(rather than threads straight out of the thread pool!) so that we maintain a high-level
of throughput.  This was in ASP.NET 1.x.<br /><br />
These more recent articles (<a href="http://msdn.microsoft.com/en-us/magazine/cc163463.aspx">http://msdn.microsoft.com/en-us/magazine/cc163463.aspx</a> and <a href="http://msdn.microsoft.com/en-us/magazine/cc163725.aspx">http://msdn.microsoft.com/en-us/magazine/cc163725.aspx</a>)
quickly outlines the new technique.<br /><br />
It's important to remember that this is only a step in the right direction, we need
to make sure that the back-end engine itself is all tickety-boo.<br /><br /><br /><p></p><img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=af6b2132-b10d-4027-9c9e-a057bd0b12ce" /></body>
      <title>Multi-threading in ASP.NET Applications</title>
      <guid isPermaLink="false">http://www.duncangunn.me.uk/dasblog/PermaLink,guid,af6b2132-b10d-4027-9c9e-a057bd0b12ce.aspx</guid>
      <link>http://www.duncangunn.me.uk/dasblog/2009/06/13/MultithreadingInASPNETApplications.aspx</link>
      <pubDate>Sat, 13 Jun 2009 09:40:04 GMT</pubDate>
      <description>Not a nice and easy topic for Saturday breakfast, I'll agree.&lt;br&gt;
&lt;br&gt;
We've been looking at improving the &lt;b&gt;responsiveness &lt;/b&gt;and &lt;b&gt;throughput&lt;/b&gt; of
our web application.&amp;nbsp; There is a significant amount of processing and database
I/O done on the application-layer, in a COM+ Server.&amp;nbsp; You can see where this
is going, I'm sure.&lt;br&gt;
&lt;br&gt;
I won't go in to the technical details, but suffice to say the logical step is to
make use of Asynchronous pages in ASP.NET.&amp;nbsp; This &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc164128.aspx"&gt;article&lt;/a&gt; explains
what we &lt;b&gt;needed&lt;/b&gt; to do to make this happen, in addition to using custom threads
(rather than threads straight out of the thread pool!) so that we maintain a high-level
of throughput.&amp;nbsp; This was in ASP.NET 1.x.&lt;br&gt;
&lt;br&gt;
These more recent articles (&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc163463.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/cc163463.aspx&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc163725.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/cc163725.aspx&lt;/a&gt;)
quickly outlines the new technique.&lt;br&gt;
&lt;br&gt;
It's important to remember that this is only a step in the right direction, we need
to make sure that the back-end engine itself is all tickety-boo.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=af6b2132-b10d-4027-9c9e-a057bd0b12ce" /&gt;</description>
      <comments>http://www.duncangunn.me.uk/dasblog/CommentView,guid,af6b2132-b10d-4027-9c9e-a057bd0b12ce.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://www.duncangunn.me.uk/dasblog/Trackback.aspx?guid=ef73ef58-f130-4c7b-9ca0-11d818969332</trackback:ping>
      <pingback:server>http://www.duncangunn.me.uk/dasblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.duncangunn.me.uk/dasblog/PermaLink,guid,ef73ef58-f130-4c7b-9ca0-11d818969332.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.duncangunn.me.uk/dasblog/CommentView,guid,ef73ef58-f130-4c7b-9ca0-11d818969332.aspx</wfw:comment>
      <wfw:commentRss>http://www.duncangunn.me.uk/dasblog/SyndicationService.asmx/GetEntryCommentsRss?guid=ef73ef58-f130-4c7b-9ca0-11d818969332</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">I've been recently putting the search engine
project through it's paces.  I know that searching for Type A entities return
in ~50ms (nice) but Type B entities return in ~1-2 seconds (ouch).  Having said
that, I know why - the database query for Type B is horrendous at the moment. 
The schema is changing drastically anyway so no point in putting that effort in now.<br /><br />
So I ran it via WAST and got some pretty decent results back.  While it does
the job, there are obviously better tools out there.  And some of these can be
expensive.<br /><br />
I've had a go of <a href="http://www.loadtestingtool.com/">WAPT</a> and been really
impressed.  The trial version only allows 20 concurrent users, but you can do
all sorts of things such as ramp up over time, specify random delays between 'clicks'
and so on.  While my application is primarily AJAX, these are just treated as
your run-of-the-mill HTTP requests.<br /><br />
At the end of it all I get a neat report, including interactive charts, which let
me see when it reaches the maximum amount of throughput before it starts to decline.<br /><br />
With just Type A entities, it just keeps those pages coming.  With Type B entities...well,
we know we have to improve!<br /><p></p><img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=ef73ef58-f130-4c7b-9ca0-11d818969332" /></body>
      <title>Stress Testing</title>
      <guid isPermaLink="false">http://www.duncangunn.me.uk/dasblog/PermaLink,guid,ef73ef58-f130-4c7b-9ca0-11d818969332.aspx</guid>
      <link>http://www.duncangunn.me.uk/dasblog/2009/06/12/StressTesting.aspx</link>
      <pubDate>Fri, 12 Jun 2009 09:30:04 GMT</pubDate>
      <description>I've been recently putting the search engine project through it's paces.&amp;nbsp; I know that searching for Type A entities return in ~50ms (nice) but Type B entities return in ~1-2 seconds (ouch).&amp;nbsp; Having said that, I know why - the database query for Type B is horrendous at the moment.&amp;nbsp; The schema is changing drastically anyway so no point in putting that effort in now.&lt;br&gt;
&lt;br&gt;
So I ran it via WAST and got some pretty decent results back.&amp;nbsp; While it does
the job, there are obviously better tools out there.&amp;nbsp; And some of these can be
expensive.&lt;br&gt;
&lt;br&gt;
I've had a go of &lt;a href="http://www.loadtestingtool.com/"&gt;WAPT&lt;/a&gt; and been really
impressed.&amp;nbsp; The trial version only allows 20 concurrent users, but you can do
all sorts of things such as ramp up over time, specify random delays between 'clicks'
and so on.&amp;nbsp; While my application is primarily AJAX, these are just treated as
your run-of-the-mill HTTP requests.&lt;br&gt;
&lt;br&gt;
At the end of it all I get a neat report, including interactive charts, which let
me see when it reaches the maximum amount of throughput before it starts to decline.&lt;br&gt;
&lt;br&gt;
With just Type A entities, it just keeps those pages coming.&amp;nbsp; With Type B entities...well,
we know we have to improve!&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=ef73ef58-f130-4c7b-9ca0-11d818969332" /&gt;</description>
      <comments>http://www.duncangunn.me.uk/dasblog/CommentView,guid,ef73ef58-f130-4c7b-9ca0-11d818969332.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://www.duncangunn.me.uk/dasblog/Trackback.aspx?guid=e353f624-2197-4420-8663-28a6a794166f</trackback:ping>
      <pingback:server>http://www.duncangunn.me.uk/dasblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.duncangunn.me.uk/dasblog/PermaLink,guid,e353f624-2197-4420-8663-28a6a794166f.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.duncangunn.me.uk/dasblog/CommentView,guid,e353f624-2197-4420-8663-28a6a794166f.aspx</wfw:comment>
      <wfw:commentRss>http://www.duncangunn.me.uk/dasblog/SyndicationService.asmx/GetEntryCommentsRss?guid=e353f624-2197-4420-8663-28a6a794166f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">I must have spent the best half of a day
tearing my hair out at this.<br /><br /><img src="http://www.duncangunn.me.uk/dasblog/content/binary/homer_simpson_doh.gif" border="0" /><br />
All information here - http://stackoverflow.com/questions/739859/returning-html-from-json-webservice-what-is-the-d<img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=e353f624-2197-4420-8663-28a6a794166f" /></body>
      <title>D is for 'doh'!</title>
      <guid isPermaLink="false">http://www.duncangunn.me.uk/dasblog/PermaLink,guid,e353f624-2197-4420-8663-28a6a794166f.aspx</guid>
      <link>http://www.duncangunn.me.uk/dasblog/2009/04/12/DIsForDoh.aspx</link>
      <pubDate>Sun, 12 Apr 2009 10:30:27 GMT</pubDate>
      <description>I must have spent the best half of a day tearing my hair out at this.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://www.duncangunn.me.uk/dasblog/content/binary/homer_simpson_doh.gif" border="0"&gt;
&lt;br&gt;
All information here - http://stackoverflow.com/questions/739859/returning-html-from-json-webservice-what-is-the-d&lt;img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=e353f624-2197-4420-8663-28a6a794166f" /&gt;</description>
      <comments>http://www.duncangunn.me.uk/dasblog/CommentView,guid,e353f624-2197-4420-8663-28a6a794166f.aspx</comments>
      <category>ASP.NET</category>
      <category>c#</category>
    </item>
    <item>
      <trackback:ping>http://www.duncangunn.me.uk/dasblog/Trackback.aspx?guid=48d04768-844d-43ff-91c4-6d8ffa834613</trackback:ping>
      <pingback:server>http://www.duncangunn.me.uk/dasblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.duncangunn.me.uk/dasblog/PermaLink,guid,48d04768-844d-43ff-91c4-6d8ffa834613.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.duncangunn.me.uk/dasblog/CommentView,guid,48d04768-844d-43ff-91c4-6d8ffa834613.aspx</wfw:comment>
      <wfw:commentRss>http://www.duncangunn.me.uk/dasblog/SyndicationService.asmx/GetEntryCommentsRss?guid=48d04768-844d-43ff-91c4-6d8ffa834613</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Not rocket science, just put here for my own future reference.
</p>
        <p>
We want to add User Actions to each row of a datagrid.  Using the DevExpress
ASPxGridView control, we create a DataColumn and then add a DataItemTemplate to this. 
</p>
        <p>
In the code in-front, add the following reference to code-behind:
</p>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">&lt;</font>
        <font color="#a31515" size="2">p</font>
        <font color="#0000ff" size="2">&gt;</font>
        <font size="2">&lt;%</font>
        <font color="#0000ff" size="2">#</font>
        <font size="2">MakeActions(Container.DataItem)%&gt;</font>
        <font color="#0000ff" size="2">&lt;/</font>
        <font color="#a31515" size="2">p</font>
        <font color="#0000ff" size="2">&gt;
</font>
        <p>
In the code-behind, the MakeActions method should look something like th
</p>
        <pre>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">        <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">public</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">string</span> MakeActions(<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">object</span> dataItem)
        {             StringBuilder
sb <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">new</span> StringBuilder();
            <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">int</span> id <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> Convert.ToInt32(DataBinder.Eval(dataItem, <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"ID"</span>).ToString());
            sb.Append(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"&lt;a
href=\""</span><span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">+</span><span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"Details.aspx?id="</span><span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">+</span> id.ToString() <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">+</span><span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"\"&gt;&lt;img
border=0 alt='Open Record' src='Images/folder_go.png'&gt;&lt;/a&gt;"</span>);             <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">return</span> sb.ToString();
        }</span>
        </pre>
        <p>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
          </span>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
            <font face="Verdana" size="2">where
DataItem is the bound data object of that row.  Clicking on this item will therefore
link to the Details.aspx page, passing through the id on the querystring.</font>
          </span>
        </p>
        <img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=48d04768-844d-43ff-91c4-6d8ffa834613" />
      </body>
      <title>Adding custom action column to ASP.NET datagrids</title>
      <guid isPermaLink="false">http://www.duncangunn.me.uk/dasblog/PermaLink,guid,48d04768-844d-43ff-91c4-6d8ffa834613.aspx</guid>
      <link>http://www.duncangunn.me.uk/dasblog/2008/11/02/AddingCustomActionColumnToASPNETDatagrids.aspx</link>
      <pubDate>Sun, 02 Nov 2008 13:52:33 GMT</pubDate>
      <description>&lt;p&gt;
Not rocket science, just put here for my own future reference.
&lt;/p&gt;
&lt;p&gt;
We want to add User Actions to each row of a datagrid.&amp;nbsp; Using the DevExpress
ASPxGridView control, we create a DataColumn and then add a DataItemTemplate to this. 
&lt;/p&gt;
&lt;p&gt;
In the code in-front, add the following reference to code-behind:
&lt;/p&gt;
&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;p&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;/font&gt;&lt;font size=2&gt;&amp;lt;%&lt;/font&gt;&lt;font color=#0000ff size=2&gt;#&lt;/font&gt;&lt;font size=2&gt;MakeActions(Container.DataItem)%&amp;gt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;lt;/&lt;/font&gt;&lt;font color=#a31515 size=2&gt;p&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&gt;
&lt;/font&gt; 
&lt;p&gt;
In the code-behind, the MakeActions method should look something like th
&lt;/p&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;public&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;string&lt;/span&gt; MakeActions(&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;object&lt;/span&gt; dataItem)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;StringBuilder
sb &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;new&lt;/span&gt; StringBuilder();
&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="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;int&lt;/span&gt; id &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; Convert.ToInt32(DataBinder.Eval(dataItem, &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"ID"&lt;/span&gt;).ToString());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sb.Append(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"&amp;lt;a
href=\""&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;+&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"Details.aspx?id="&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;+&lt;/span&gt; id.ToString() &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;+&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"\"&amp;gt;&amp;lt;img
border=0 alt='Open Record' src='Images/folder_go.png'&amp;gt;&amp;lt;/a&amp;gt;"&lt;/span&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="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;return&lt;/span&gt; sb.ToString();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;font face=Verdana size=2&gt;where
DataItem is the bound data object of that row.&amp;nbsp; Clicking on this item will therefore
link to the Details.aspx page, passing through the id on the querystring.&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=48d04768-844d-43ff-91c4-6d8ffa834613" /&gt;</description>
      <comments>http://www.duncangunn.me.uk/dasblog/CommentView,guid,48d04768-844d-43ff-91c4-6d8ffa834613.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://www.duncangunn.me.uk/dasblog/Trackback.aspx?guid=ff7395f9-4d4a-45fa-a690-ed5e202add74</trackback:ping>
      <pingback:server>http://www.duncangunn.me.uk/dasblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.duncangunn.me.uk/dasblog/PermaLink,guid,ff7395f9-4d4a-45fa-a690-ed5e202add74.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.duncangunn.me.uk/dasblog/CommentView,guid,ff7395f9-4d4a-45fa-a690-ed5e202add74.aspx</wfw:comment>
      <wfw:commentRss>http://www.duncangunn.me.uk/dasblog/SyndicationService.asmx/GetEntryCommentsRss?guid=ff7395f9-4d4a-45fa-a690-ed5e202add74</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If you want to run some script before or after client validation has been
performed, you'll need to redirect the WebForm_OnSubmit() function.  Because
of the framework we are using, WebForm_OnSubmit() was returning false immediately,
so adding anything to Page.ClientScript.RegisterOnSubmitStatement was never being
run.
</p>
        <p>
I didn't have time to sort out where in the framework this was being set up (never
mind the impact analysis), so I re-directed the Submit of the form to call my function
first, then called the WebForm_OnSubmit code as normal.
</p>
        <pre>
          <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">
            <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">if</span> (!Page.ClientScript.IsClientScriptBlockRegistered(submitRedirect))
{ StringBuilder sb <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span><span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">new</span> StringBuilder();
sb.Append(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"&lt;script&gt;"</span>);
sb.AppendFormat(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"var
oldSubmit = document.getElementById('Form1').onsubmit;"</span>); sb.Append(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"function
mySubmit()"</span>); sb.Append(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"{"</span>); <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">//Your
code here</span> sb.Append(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"return
oldSubmit();"</span>); sb.Append(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"}"</span>);
sb.Append(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"document.getElementById('Form1').onsubmit
= mySubmit;"</span>); sb.Append(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"&lt;/script&gt;"</span>);
Page.ClientScript.RegisterClientScriptBlock(GetType(), submitRedirect, sb.ToString());
}</span>
        </pre>
        <p>
Thanks to <a href="http://forums.asp.net/p/1011848/1354154.aspx">http://forums.asp.net/p/1011848/1354154.aspx</a> for
this tip.
</p>
        <p>
 
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=ff7395f9-4d4a-45fa-a690-ed5e202add74" />
      </body>
      <title>Intercepting WebForm_OnSubmit</title>
      <guid isPermaLink="false">http://www.duncangunn.me.uk/dasblog/PermaLink,guid,ff7395f9-4d4a-45fa-a690-ed5e202add74.aspx</guid>
      <link>http://www.duncangunn.me.uk/dasblog/2008/03/07/InterceptingWebFormOnSubmit.aspx</link>
      <pubDate>Fri, 07 Mar 2008 12:43:05 GMT</pubDate>
      <description>&lt;p&gt;
If you want to run some script&amp;nbsp;before or after&amp;nbsp;client validation has been
performed, you'll need to redirect the WebForm_OnSubmit() function.&amp;nbsp; Because
of the framework we are using, WebForm_OnSubmit() was returning false immediately,
so adding anything to Page.ClientScript.RegisterOnSubmitStatement was never being
run.
&lt;/p&gt;
&lt;p&gt;
I didn't have time to sort out where in the framework this was being set up (never
mind the impact analysis), so I re-directed the Submit of the form to call my function
first, then called the WebForm_OnSubmit code as normal.
&lt;/p&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;&lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;if&lt;/span&gt; (!Page.ClientScript.IsClientScriptBlockRegistered(submitRedirect))
{ StringBuilder sb &lt;span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;=&lt;/span&gt; &lt;span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;new&lt;/span&gt; StringBuilder();
sb.Append(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"&amp;lt;script&amp;gt;"&lt;/span&gt;);
sb.AppendFormat(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"var
oldSubmit = document.getElementById('Form1').onsubmit;"&lt;/span&gt;); sb.Append(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"function
mySubmit()"&lt;/span&gt;); sb.Append(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"{"&lt;/span&gt;); &lt;span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;//Your
code here&lt;/span&gt; sb.Append(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"return
oldSubmit();"&lt;/span&gt;); sb.Append(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"}"&lt;/span&gt;);
sb.Append(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"document.getElementById('Form1').onsubmit
= mySubmit;"&lt;/span&gt;); sb.Append(&lt;span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4"&gt;"&amp;lt;/script&amp;gt;"&lt;/span&gt;);
Page.ClientScript.RegisterClientScriptBlock(GetType(), submitRedirect, sb.ToString());
}&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Thanks to &lt;a href="http://forums.asp.net/p/1011848/1354154.aspx"&gt;http://forums.asp.net/p/1011848/1354154.aspx&lt;/a&gt;&amp;nbsp;for
this tip.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=ff7395f9-4d4a-45fa-a690-ed5e202add74" /&gt;</description>
      <comments>http://www.duncangunn.me.uk/dasblog/CommentView,guid,ff7395f9-4d4a-45fa-a690-ed5e202add74.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://www.duncangunn.me.uk/dasblog/Trackback.aspx?guid=6caa8ad6-756d-432d-9641-2e635e36e023</trackback:ping>
      <pingback:server>http://www.duncangunn.me.uk/dasblog/pingback.aspx</pingback:server>
      <pingback:target>http://www.duncangunn.me.uk/dasblog/PermaLink,guid,6caa8ad6-756d-432d-9641-2e635e36e023.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.duncangunn.me.uk/dasblog/CommentView,guid,6caa8ad6-756d-432d-9641-2e635e36e023.aspx</wfw:comment>
      <wfw:commentRss>http://www.duncangunn.me.uk/dasblog/SyndicationService.asmx/GetEntryCommentsRss?guid=6caa8ad6-756d-432d-9641-2e635e36e023</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I was debugging on a colleague's Vista box the other day, and all of a sudden it kicked
me out, resetting back into Visual Studio.
</p>
        <p>
I remembered seeing a blog about this issue a while ago, and thankfully was able to
find it again, so here it is in case you have encountered the same problem:
</p>
        <p>
          <a href="http://eamon.nerbonne.org/2007/11/visual-studio-2005-on-vista-timeouts.html">http://eamon.nerbonne.org/2007/11/visual-studio-2005-on-vista-timeouts.html</a>
        </p>
        <img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=6caa8ad6-756d-432d-9641-2e635e36e023" />
      </body>
      <title>Windows Vista/Visual Studio 2008 debug problem</title>
      <guid isPermaLink="false">http://www.duncangunn.me.uk/dasblog/PermaLink,guid,6caa8ad6-756d-432d-9641-2e635e36e023.aspx</guid>
      <link>http://www.duncangunn.me.uk/dasblog/2008/03/06/WindowsVistaVisualStudio2008DebugProblem.aspx</link>
      <pubDate>Thu, 06 Mar 2008 18:31:53 GMT</pubDate>
      <description>&lt;p&gt;
I was debugging on a colleague's Vista box the other day, and all of a sudden it kicked
me out, resetting back into Visual Studio.
&lt;/p&gt;
&lt;p&gt;
I remembered seeing a blog about this issue a while ago, and thankfully was able to
find it again, so here it is in case you have encountered the same problem:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://eamon.nerbonne.org/2007/11/visual-studio-2005-on-vista-timeouts.html"&gt;http://eamon.nerbonne.org/2007/11/visual-studio-2005-on-vista-timeouts.html&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.duncangunn.me.uk/dasblog/aggbug.ashx?id=6caa8ad6-756d-432d-9641-2e635e36e023" /&gt;</description>
      <comments>http://www.duncangunn.me.uk/dasblog/CommentView,guid,6caa8ad6-756d-432d-9641-2e635e36e023.aspx</comments>
      <category>ASP.NET</category>
    </item>
  </channel>
</rss>