好的,所以经过太多小时的调试和拔掉我剩下的头发,我找到了罪魁祸首。这是我的 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);
}
}