さて、何時間にもわたるデバッグと髪の毛の残りの部分の引き抜きの後、犯人を見つけました。それは私の WindsorActionInvoker でした!! ControllerActionInvoker から AsyncControllerActionInvoker への変更により、非同期タスクが意図したとおりに機能しない問題が修正されました。
これが誰かに役立つことを願っています。
public class WindsorActionInvoker : AsyncControllerActionInvoker
{
private readonly IKernel _kernel;
public WindsorActionInvoker(IKernel kernel)
{
_kernel = kernel;
}
protected override ActionExecutedContext InvokeActionMethodWithFilters(ControllerContext controllerContext,
IList<IActionFilter> filters,
ActionDescriptor actionDescriptor,
IDictionary<string, object> parameters)
{
foreach (IActionFilter actionFilter in filters)
{
_kernel.InjectProperties(actionFilter);
}
return base.InvokeActionMethodWithFilters(controllerContext, filters, actionDescriptor, parameters);
}
}