通过WCF从SMS提供商检索SMS消息

通过WCF从SMS提供商检索SMS消息,wcf,sms,Wcf,Sms,我有一个asp.net web应用程序来调用WCF服务中的函数来发送SMS消息。发送消息后,WCF服务需要不断检查SMS提供商的虚拟收件箱,并在有任何新回复时通知我的web应用程序。可能有多个web应用程序使用此服务。实现这一点的好方法是什么 目前我在WCF服务中有这样一个功能,它是单向操作合同。 我正在考虑将实例管理配置为PerSession public void Send(SMSMessage message) { bool startRetrieving

我有一个asp.net web应用程序来调用WCF服务中的函数来发送SMS消息。发送消息后,WCF服务需要不断检查SMS提供商的虚拟收件箱,并在有任何新回复时通知我的web应用程序。可能有多个web应用程序使用此服务。实现这一点的好方法是什么

目前我在WCF服务中有这样一个功能,它是单向操作合同。 我正在考虑将实例管理配置为PerSession

    public void Send(SMSMessage message)
    {
        bool startRetrieving = _smsContext.Send(message);

        //keep polling virtual inbox to retrieve replies until it's expired
        while (startRetrieving && DateTime.Now < message.ReplyExpiry)
        {
           //send a http request to check inbox
           //if there is any new reply, notify my web application by making 
           //a http request
           //Check the inbox every xxxx seconds.
           System.Threading.Thread.Sleep(xxxx);
        }

        //if it is expired, tell sender app that time to receiving reply is expired
    }
公共无效发送(SMSMessage消息)
{
bool startRetrieving=\u smsContext.Send(消息);
//继续轮询虚拟收件箱以检索回复,直到其过期
while(开始检索&&DateTime.Now
这种情况下,相关性模式非常适合

基本思想是,每个呼叫或客户机都有自己的id,然后当答案返回时,您可以根据相关id确定结果应该放在哪里

您如何实现它将取决于您的服务需要多么健壮。如果您使用每个会话,并且机器重新启动,并且您失去了会话,这可以吗


当我们有一个系统,我们不能松散的信息,我们设置了2个服务。一个用于发送呼叫,另一个用于服务将数据发送回客户端。如果出现任何故障,当系统再次备份时,所有内容都将正确发送。

对“双工合同”进行一些研究。我知道如何设置双工内容,但对该函数的调用是在asp页面中进行的。该页面可能已关闭。WCF如何进行回调?