创建订单时任务被取消
Task Canceled While Creating Order
创建新订单时,我发现执行时间很长,然后它最终因 TaskCanceledException 而失败。
我正在使用自己的支付模块,并将其与已经编写的支付模块进行了比较,我似乎正在正确实施。正在处理付款。
https://github.com/montanehamilton/vc-module-PayPal-Rest
我也有自定义送货方式模块
https://github.com/montanehamilton/vc-fedex
有没有想过遇到这种行为时应该去哪里找? 运行平台2.13.9.
异常详情
POST storefrontapi/cart/createorder 500 内部服务器错误任务已取消。
System.Threading.Tasks.TaskCanceledException: 任务已取消。
在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)
在 System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(任务任务)
在 VirtoCommerce.Storefront.AutoRestClients.OrdersModuleApi.OrderModule.d__9.MoveNext()
--- 从抛出异常的先前位置开始的堆栈跟踪结束 ---
在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)
在 VirtoCommerce.Storefront.AutoRestClients.OrdersModuleApi.OrderModuleExtensions.d__9.MoveNext()
--- 从抛出异常的先前位置开始的堆栈跟踪结束 ---
在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)
在 System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(任务任务)
在 VirtoCommerce.Storefront.Controllers.Api.ApiCartController.d__21.MoveNext()
--- 从抛出异常的先前位置开始的堆栈跟踪结束 ---
在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)
在 System.Web.Mvc.Async.TaskAsyncActionDescriptor.EndExecute(IAsyncResult asyncResult)
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass37.b__36(IAsyncResult asyncResult)
在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult1.CallEndDelegate(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase
1.End()
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.b__3d()
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.b__3f()
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.b__3f()
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.b__3f()
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass33.b__32(IAsyncResult asyncResult)
在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult1.CallEndDelegate(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase
1.End()
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<>c__DisplayClass2b.b__1c()
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.b__1e(IAsyncResult asyncResult)
任务因超时而被取消。 VirtoCommerce 店面应配置为将这些超时设置为适合任务的值。
就我而言,PayPal 建议至少 30 秒,如果不是更多的话。我把超时设置为1分钟,问题就解决了。
您可以在 web.config 中设置名称为 "VirtoCommerce:Storefront:ApiRequest:Timeout" 的 AppSetting,以更改进行 API 调用时的超时。
我建议将平台更新到 2.13.11 并将模块更新到最新版本。
此更新减少了订单流期间的内存使用和性能,因此我们可以降低 Azure 价格计划。
创建新订单时,我发现执行时间很长,然后它最终因 TaskCanceledException 而失败。
我正在使用自己的支付模块,并将其与已经编写的支付模块进行了比较,我似乎正在正确实施。正在处理付款。
https://github.com/montanehamilton/vc-module-PayPal-Rest
我也有自定义送货方式模块
https://github.com/montanehamilton/vc-fedex
有没有想过遇到这种行为时应该去哪里找? 运行平台2.13.9.
异常详情
POST storefrontapi/cart/createorder 500 内部服务器错误任务已取消。
System.Threading.Tasks.TaskCanceledException: 任务已取消。
在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)
在 System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(任务任务)
在 VirtoCommerce.Storefront.AutoRestClients.OrdersModuleApi.OrderModule.d__9.MoveNext()
--- 从抛出异常的先前位置开始的堆栈跟踪结束 ---
在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)
在 VirtoCommerce.Storefront.AutoRestClients.OrdersModuleApi.OrderModuleExtensions.d__9.MoveNext()
--- 从抛出异常的先前位置开始的堆栈跟踪结束 ---
在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)
在 System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(任务任务)
在 VirtoCommerce.Storefront.Controllers.Api.ApiCartController.d__21.MoveNext()
--- 从抛出异常的先前位置开始的堆栈跟踪结束 ---
在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)
在 System.Web.Mvc.Async.TaskAsyncActionDescriptor.EndExecute(IAsyncResult asyncResult)
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass37.b__36(IAsyncResult asyncResult)
在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult1.CallEndDelegate(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase
1.End()
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.b__3d()
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.b__3f()
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.b__3f()
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.b__3f()
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass33.b__32(IAsyncResult asyncResult)
在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult1.CallEndDelegate(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase
1.End()
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<>c__DisplayClass2b.b__1c()
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.b__1e(IAsyncResult asyncResult)
任务因超时而被取消。 VirtoCommerce 店面应配置为将这些超时设置为适合任务的值。
就我而言,PayPal 建议至少 30 秒,如果不是更多的话。我把超时设置为1分钟,问题就解决了。
您可以在 web.config 中设置名称为 "VirtoCommerce:Storefront:ApiRequest:Timeout" 的 AppSetting,以更改进行 API 调用时的超时。
我建议将平台更新到 2.13.11 并将模块更新到最新版本。
此更新减少了订单流期间的内存使用和性能,因此我们可以降低 Azure 价格计划。