[英]Running a process asynchronously with feedback from ASP.NET via WCF (C#)
(环境.NET 4.0 C#WCF和ASP.NET)
所以这是我想要发生的流程:
我在数据库中添加了一个名为“ UploadProcessing”的表,该表保留了上载的状态(除其他外),并且我编写了在后端处理上载的逻辑,该逻辑由WCF服务调用。 在处理上载时,它将上载具有工作当前状态的“ UploadProcessing”记录,直到最终完成。
我首先从仅调用WCFClient.ProcessUpload(args...);
从Commit_Click()
事件中获取,但仅处理了上传并等待完成,然后再启用AJAX更新状态计时器,该计时器始终显示已完成(因为已完成)。 然后,我尝试异步调用相同的方法,但是它似乎以相同的方式起作用,因为在异步完成处理程序得到响应之前,页面不会完全发回到客户端(使用启用的计时器),从而有效地导致了相同的“已完成”对用户的回复。
因此,我有礼貌地向社区询问,您将如何通过WCF来“触发并忘记”此ProcessUpload()
方法,以便它可以在后台执行其操作,同时页面可以自由地异步回发并监视其状态? 也许在WCF方面有某种ThreadPool解决方案? 还是从服务监视“ UploadProcessing”表中的未决上载,然后以这种方式处理?
预先感谢您的任何建议!
建议将WCF方法设为OneWay操作,例如
[OperationContract(IsOneWay = true)]
public void ProcessUpload(...)
{
//etc
}
听起来您正在按照正确的方式进行操作,也许您对WCF服务的异步设置不是很正确吗? 这个问题的答案有一些有用的链接,这是MSDN页面上的异步调用WCF服务操作 。
更新 :看来此博客文章几乎完全涵盖了您的问题,对您来说似乎是一个很好的资源。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.