我是网络开发的新手,所以我不确定我遇到的问题的最佳选择是什么。
基本上我有一个Web应用程序调用Web服务来处理一些数据。 这个过程可能需要很长时间(小时),我想知道是否有一种简单的方法可以不时向客户发送一些状态信息。
现在,客户端从浏览器发出请求,它只是等到那里直到它完成。
如何从网络服务发送一些信息?我想发一个百分比和一些额外的文字来说明正在做什么。
由于
答案 0 :(得分:0)
也许你可以调查另一种状态方法吗?
答案 1 :(得分:0)
WCF服务可以标记为[OneWay],以便它们不会返回响应。 或者,您可以以异步方式启动该流程,然后返回该流程已启动/未启动的客户端。
然后,客户端可以像其他用户建议的那样轮询另一个方法。
如果你需要几个小时的处理时间,你肯定无法使用同步服务,因为你会遇到执行超时或者客户端的连接超时。
答案 2 :(得分:0)
如果我是你,我会使原始请求异步,而不是等待响应,它只是“启动”任务并立即返回。然后我会在您的Web服务上有一个单独的方法,应用程序可以定期轮询以获取作业的状态。一旦完成,它就可以像原始请求一样显示数据。
如果要同步执行此操作,可以关闭Response.Buffer并直接写入响应。