title: Operate on HTTP Request as it is received in IIS in C#
body: <p>I have a need to override the receipt of a raw HTTP request as it is being communicated to an IIS server.  I want to know if this is possible.  </p>
  
  <p>We have a client who sends huge Web Service calls (tens of Mb) and we want to start acting on portions of those calls as they are being received (in order to get a faster total time of execution for the Web Service call).  </p>
  
  <p>Currently, using normal web service methods, our application code is handed the Web Service call after it is totally received.  </p>
  
  <p>I realize this isn't the ideal way of handling Web Services, and we're not building our business on this, but we do have an need that we're trying to fill for a limited range of customers. </p>
  
  <p>I have created a handler that implements IHttpHandler, but it appears that at this point in the process pipeline, the Request has been fully received by IIS (which doesn't get us any benefit over our current model).  That is, I can read the InputStream directly, but the full request has already been transferred over the wire before I have access to this stream.</p>
  
  <p>I think the answer is that I have to code an ISAPI filter to get this far down, but I don't have the skills to do this in C/C++.  Does anyone know if there's another way I can do this without the ISAPI filter route?  </p>
  
  <p>An acceptable answer could be, "You have to do this as and ISAPI filter, to do it in C#, check this doc".</p>