クライアントのパフォーマンスを向上させるために、リクエストの処理をタスクにオフロードします。これは通常、処理に少し時間がかかるため、200 応答を取得するためだけにクライアントをしばらく待たせたくないためです。作業をタスクにオフロードする Web サービスは、常にポストを処理しています。
public void ProcessRequest(HttpContext context)
{
// check for bad requests -- return 400
// get copy of the context input stream
Task.Factory.StartNew(() =>
{
ProcessRequest(contextInputStreamCopy);
});
}
private void ProcessRequest(Stream inputStream)
{
try
{
// process input stream
}
catch(Exception ex)
{
// any server error that would normally result in 500 response are not
// exposed to the clients, the clients are to see 200 when the server
// encounters an error
}
}
私の質問は、IIS がリサイクルされたとき、または Web サイトが停止されたときに、これらのタスクがどうなるかということです。