我可以通过调用 Web 服务代理的 ABORT 方法中止来自客户端的 Web 服务调用。
但是,在托管 Web 服务的服务器上,调用仅在完成处理时结束。由于服务器在处理它时不期望与已调用的 Web 方法相关的任何其他输入,因此我无法从客户端关闭它。
有什么办法我也可以中止服务器上的调用,即停止大型计算(并从数据库服务器中提取一些数据)哪个服务器正在处理?
我可以通过调用 Web 服务代理的 ABORT 方法中止来自客户端的 Web 服务调用。
但是,在托管 Web 服务的服务器上,调用仅在完成处理时结束。由于服务器在处理它时不期望与已调用的 Web 方法相关的任何其他输入,因此我无法从客户端关闭它。
有什么办法我也可以中止服务器上的调用,即停止大型计算(并从数据库服务器中提取一些数据)哪个服务器正在处理?
如果您使用的是 ASMX Web 服务,那么肯定没有办法做到这一点。也许其他人可以谈论 WCF 是否可行。
通常,它会要求您编写服务以预期中断。大多数服务代码不是这样编写的。
您是否希望经常中止请求?如果没有,那么最好在服务器上什么也不做。
既然你在谈论一个简单的同步请求响应,我不知道你会怎么做。
方法调用通常需要多长时间?
您真正想要的行为听起来像:
这听起来确实像是将您的处理建模为工作流,而不是函数调用。
如果你发现切换到这种做事模式有很大的好处,那么是的,你有选择。否则,只吃(很少)浪费计算的成本可能会更简单。