在客户端关闭会话时创建了异步函数(例如后台自动电子邮件)的wcf会话会发生什么情况,即client.Close()/ client.Abort()?
换句话说,如果有一些如下:
[OperationContract(IsOneWay = true, IsInitiating = true, IsTerminating = false)]
void RegisterUser(string user);
[OperationContract(IsOneWay = false, IsInitiating = false, IsTerminating = false)]
void SendEmails(T[] listofDetails);
[OperationContract(IsOneWay = false, IsInitiating = false, IsTerminating = true)]
void UnRegisterUser();
和SendEmails创建一个任务或异步函数(异步调用未完成客户端),它在后台发送所有电子邮件。
并且用户在所有电子邮件发送完成之前终止会话?会话是否仍处于打开状态并等待或关闭,电子邮件会一直持续到完成或发生什么事情为止?
谢谢所有
对不起,如果问题有点模糊:/
答案 0 :(得分:0)
在您的示例中,您定义了一个名为SendEmails的请求 - 响应操作,该操作返回void。这与异步操作不同。
我假设您正在操作方法中创建一个新的后台线程,然后消失并发送电子邮件。
在这种情况下,一旦操作方法执行完毕,操作将向调用者返回void。如果客户端然后终止通道,后台线程将继续其工作。