Currently the pipeline is entirely synchronous and runs on a basic IHttpHandler. Due to the nature of OWIN and the availability of IHttpAsyncHandler in IIS, it's probably a better option to allow for an async request.
In terms of how to make this work, should each element of the pipeline be switched to an async version? ie each pipeline function takes an Async<Request * Response>. This would lead to a fairly large refactor needed and so would be best done early in the project. ie Before key default pipeline elements are started.
The pipeline now is entirely async. IIS hosting uses IHttpAsyncHandler. Each element should now be of the form Async<Request * Response> -> Async<Request * Response>
Currently the pipeline is entirely synchronous and runs on a basic IHttpHandler. Due to the nature of OWIN and the availability of IHttpAsyncHandler in IIS, it's probably a better option to allow for an async request.
In terms of how to make this work, should each element of the pipeline be switched to an async version? ie each pipeline function takes an Async<Request * Response>. This would lead to a fairly large refactor needed and so would be best done early in the project. ie Before key default pipeline elements are started.