title: WCF, SOAP, Plain Old XML
body: <p>I'm very confused by some things in the Web Service world, and I was hoping that someone could explain it to me.</p>
  
  <p>Here's what I want:  I want to HTTPPost an XML document to <a href="https://www.whatever.com/myservice" rel="nofollow">https://www.whatever.com/myservice</a>(.???).  In that service, I want to get that XML doc, do stuff, then respond back with an XML doc that is ultra simple -- like "<code>&lt;xml....&gt;&lt;success&gt;TRUE&lt;/success&gt;</code>"</p>
  
  <p>I can't do SOAP or JSON or anything else.  I MUST conform to what already exists.  There are hundreds of different companies sending us data in exactly the format that I described, and adding a requirement to enclose it all in SOAP simply isn't possible.</p>
  
  <p>When using a WCF Web Service, it appears that the request to me has to be sent like this:</p>
  
  <pre><code> &lt;s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"&gt;&lt;s:Body&gt;&lt;GetData xmlns="http://tempuri.org/"&gt;&lt;value&gt;3&lt;/value&gt;&lt;/GetData&gt;&lt;/s:Body&gt;&lt;/s:Envelope&gt;
  </code></pre>
  
  <p>When using a .asmx page, the response is always sent as an XML document with a namespace (http://tempuri, or if I change it, then to whatever I change it to). This is unneeded and would likely break all the existing code.</p>
  
  <p>When using a generic handler (.ashx), I can definitely control exactly what gets returned back, but I've been told to stay away from .ashx pages because they carry the full ASP.Net session type code and it is much slower.</p>
  
  <p>What would I use to solve this issue and have my code be as fast as possible?</p>
  
  <p>EDIT:  In case anyone cares, the 10,000 requests per hour issue is our peak traffic during the year.  We handle 50-60k incoming requests per day on average, but during December it can reach up to 10,000 requests per hour.  And we hope to grow, but to do that, I'll add a load balancer and some more machines in Rackspace.</p>
  
  <p>Our current provider of this service is overwhelmed during these times and we miss out on a lot of money because of this.  So, my proxy will do one of our most basic checks on the front side (duplicate check against a database updated hourly) and that will weed out 75% of the traffic we have to send to our current provider.  The current provider does underwriting of these leads for us, and I will not be replacing that, merely adding a gatekeeper to reduce stress on their servers.</p>
  
  <p>Thanks for all of the help.  I've asked a series of web service questions lately on StackOverflow trying to get my head around many of the issues that I'll be facing.</p>