如何在执行时从Web服务发送状态信息?

时间:2010-07-20 17:49:32

标签: asp.net web-services web-applications

我是网络开发的新手,所以我不确定我遇到的问题的最佳选择是什么。

基本上我有一个Web应用程序调用Web服务来处理一些数据。 这个过程可能需要很长时间(小时),我想知道是否有一种简单的方法可以不时向客户发送一些状态信息。

现在,客户端从浏览器发出请求,它只是等到那里直到它完成。

如何从网络服务发送一些信息?我想发一个百分比和一些额外的文字来说明正在做什么。

由于

3 个答案:

答案 0 :(得分:0)

也许你可以调查另一种状态方法吗?

答案 1 :(得分:0)

WCF服务可以标记为[OneWay],以便它们不会返回响应。 或者,您可以以异步方式启动该流程,然后返回该流程已启动/未启动的客户端。

然后,客户端可以像其他用户建议的那样轮询另一个方法。

如果你需要几个小时的处理时间,你肯定无法使用同步服务,因为你会遇到执行超时或者客户端的连接超时。

答案 2 :(得分:0)

如果我是你,我会使原始请求异步,而不是等待响应,它只是“启动”任务并立即返回。然后我会在您的Web服务上有一个单独的方法,应用程序可以定期轮询以获取作业的状态。一旦完成,它就可以像原始请求一样显示数据。

如果要同步执行此操作,可以关闭Response.Buffer并直接写入响应。