4.5より前のバージョンでHttpContext.Currentを保持するために、スレッドのSynchornizationContextの処理を渡す必要があるという記事をいくつか読みました。
これが私が実行しようとしているコードです:
TaskScheduler taskScheduler = TaskScheduler.FromCurrentSynchronizationContext();
Task.Factory.StartNew(() => HandleInquiry(currentInquiry, request),
CancellationToken.None,
TaskCreationOptions.None,
taskScheduler)
このコードをデバッグすると、タスクスケジューリングの前に、taskSchedulerにAspNetSynchronizationContextが含まれていることを確認できます。ただし、HandleInquiryメソッド内(タスク内)では、SynchronizationContext.Currentはnullであり、HttpContext.Currentもnullです。私は明らかな何かを見逃していると確信しています。