Ela*_*lan 6 session wcf windows-services
我有一个我写的WCF服务,它托管在Windows服务中.它以PerSession模式运行.该服务允许客户端通过该服务打开文件,更改文件和远程关闭文件.到目前为止,所有工作都很顺利
当Windows服务停止时,我希望能够使WCF服务不接受任何新会话,并允许已连接的客户端完成其当前会话并工作(在合理的时间段/超时内).
实现这一目标的最佳方法是什么?
基本上,调用ServiceHost.Close()
将完成此操作 - 它将使所有当前正在运行的请求运行完成,但是新请求将被拒绝,有序关闭正在进行中.
您为服务配置的绑定上有一个"CloseTimeout"设置 - 它控制WCF运行时允许运行请求所需的时间,直到它们正确关闭为止.如果发生超时,仍会运行仍在运行的请求.
ServiceHost.Abort()
另一方面,该方法是大锤的数字等效 - 所有运行请求立即终止,主机关闭.
在客户端,你有相同的.Close()
,并.Abort()
在客户端代理方法,它们的行为方式相同.
归档时间: |
|
查看次数: |
6070 次 |
最近记录: |