Azure Web Role - long query start (load balancing timeout?)

Our MVC3 front-end web application uses AsyncController because each of our instances serves many hundreds of lengthy IO-bound processes.

Since Azure will terminate “inactive” http sessions after some predetermined interval (which seems to vary depending on which website you are reading on), how can we keep in touch on the web?

Our customers MUST stay connected and our processes will run from 30 seconds to 5 minutes or more. How can we keep in touch with the client? I initially thought about having a timeout in the Async method and just hit the Response object with a few bytes of output, sort of blocking the response, and then came back and expected a bit more. However, I don't think this will work, since MVC3 handles connecting the IIS thread to an asynchronous response that already displayed the view at that time.

How can we run a very lengthy process on AsyncController but not disconnect the client from Azure load balancing? Sending an immediate response to the caller and requesting that the caller to poll or verify another resource URL is unacceptable.

+5
source share
1 answer

Azure standby idle timeout is 4 minutes. Can you try to configure TCP keep-alive on the client side for less than 4 minutes to keep the connection on the network?

On the other hand, it is quite expensive to keep the connection open to the client for a long time. This will limit the number of clients that you can process on the server. In addition, I think IIS can still decide to close the connection, regardless of whether they are saved if it considers that a connection is required to connect other requests.

+5
source

All Articles