J'ai une application Web asp.net pour appeler une fonction dans le service WCF pour envoyer un message SMS. Après l'envoi d'un message, le service WCF doit continuer à vérifier une boîte de réception virtuelle au niveau du fournisseur SMS et notifier mon application Web s'il y a une nouvelle réponse. Il peut y avoir plus d'une application Web pour utiliser ce service. Quel est un bon moyen de mettre en œuvre cela?Récupération du message SMS du fournisseur SMS par WCF
Actuellement, j'ai une fonction dans le service WCF comme ceci, c'est un contrat d'opération OneWay. Je pense à configurer la gestion d'instance en tant que 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
}
Faire des recherches sur les "contrats duplex" –
Je sais comment configurer les choses en duplex, mais l'appel à cette fonction est fait dans une page ASP. Cette page peut être fermée. Comment WCF se débrouiller pour faire un rappel? –