【问题标题】:UseTaskFriendlySynchronizationContext with WebForms and WebAPI in the same projectUseTaskFriendlySynchronizationContext 与 WebForms 和 WebAPI 在同一个项目中
【发布时间】:2015-04-29 15:37:04
【问题描述】:

我有一个使用需要扩展的 WebForms 的旧版应用程序。我为我的新功能合并了 WebAPI。在我开始使用异步等待之前,一切都很好。

在 WebAPI 中 UseTaskFriendlySynchronizationContext = false 将导致 HttpContext 为空。将其设置为 true 可解决此问题。

在 WebForms 中 UseTaskFriendlySynchronizationContext = true 将导致某些页面永远不会返回。就像 IIS 从不返回响应一样。将其设置为 false 可以解决此问题。

有没有办法让 WebAPI 为真而 WebForms 为假?

【问题讨论】:

  • 您是否尝试过并获得任何最终解决方案的 Webforms 而不会出现死锁?

标签: c# asp.net asynchronous asp.net-web-api webforms


【解决方案1】:

不,不可能将其设置在该级别。 ASP.NET 运行时在其进程(技术上是应用程序域)中必须只使用一种实现。

我的建议是调查您的 WebForms 代码并确定它与新 SyncCtx 发生死锁的原因。绝大多数代码应该都能正常工作,所以那里一定有什么不寻常的地方。

【讨论】:

    猜你喜欢
    • 2013-12-27
    • 2016-08-15
    • 2019-10-11
    • 1970-01-01
    • 2019-10-17
    • 1970-01-01
    • 2021-04-19
    • 1970-01-01
    • 2013-03-17
    相关资源
    最近更新 更多