【问题标题】:Create single async webmethod on asp.net webforms to long polling在 asp.net webforms 上创建单个异步 webmethod 以进行长轮询
【发布时间】:2013-04-03 18:22:33
【问题描述】:

我正在做一个小项目,我想在其中实现 long polling。我不想为此使用 SignalR 或任何其他第三方库。我有一个ASP.NET WebForm,我实现了一个简单的 Web 方法,通过 asp.net 页面公开(装饰有 [WebMethod] 属性)。

这是一个非常简单的项目,只有这个方法需要以异步方式使用,因此它不使用请求池中的线程。我对完成此任务的第三方库、MVC 异步控制器、整个异步 Web 表单页面等不感兴趣......我只是在寻找一个简单的实现来让它在通过 AJAX 请求的单个方法上工作来自客户端的请求。

到目前为止,我不确定如何处理它,因为我发现的大多数资源都为整个项目实现了异步,这 不是 我想要的。

有人对我如何完成这件小事有任何想法或资源吗?

【问题讨论】:

  • 我自己也在寻找同样的东西。到目前为止,您似乎希望在您的方法中调用 RegisterAsyncTask,并设置 Page.AsyncMode。如果我很快得到一些工作代码,我会发布作为答案,在此之前希望这会为您指明正确的方向。
  • 您要问的“小”东西并不是非常小。这是一个重大的范式转变,这就是为什么要创建其他框架来做到这一点。 SignalR 现在是 ASP.NET 的一部分,因此它不再是第三方库。我建议您使用它而不是自己做这个 - 当您尝试使用 ASP.NET Web 表单做一些不是它的设计用途时,您将与它作斗争。使用 SignalR 并利用已有的东西可能会更快、更简单、更干净。

标签: c# asp.net webforms


【解决方案1】:

有一个 MSDN 示例,它使用 ManualResetEvent 类、脚本管理器控件和 Web 服务来实现长轮询(他们在示例中将其称为反向 ajax)。

http://code.msdn.microsoft.com/CSASPNETReverseAJAX-7a1f0c2b

【讨论】:

    猜你喜欢
    • 2012-02-24
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 2014-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多