如果AppPool被回收,那么正在进行的Web服务调用会发生什么

时间:2014-04-26 10:20:09

标签: asp.net wcf iis

我有一个asp.net网络应用程序,使用WCF执行的操作很少。

我的问题是 -

当我的WCF方法调用正在进行时,应用程序池由于以下原因而重置:
1)改变Web.Config
2)某些组件部署在Bin文件夹中 3)IIS崩溃
4)IIS停止了

我的方法调用会发生什么?

我尝试过的事情:
1)在WCF方法中应用Thread.Sleep 20秒 2)当WCF方法正在进行时,我更改了bin文件夹中的程序集。

结果 - 令人惊讶的是,调用了WCF方法的Success Callback并成功调用了WCF方法。 按照我的预期,它应该进入失败回调。

1 个答案:

答案 0 :(得分:3)

http://www.iis.net/learn/manage/provisioning-and-managing-iis/features-of-the-windows-process-activation-service-was

在"回收"节

  

WAS通过产生一个与仍处理请求的旧工作进程并行的新工作进程来实现此目的。一旦新的工作进程启动,它就开始从请求队列中获取请求,而WAS指示旧的工作进程停止接收请求。一旦旧的工作进程完成所有正在执行的请求,它就会关闭。此功能称为"重叠回收"。它确保在回收期间不会丢失任何请求。