J'utilise le code suivant dans mon fichier Global.asax.cs:ChannelFactory statique Global.asax.cs jette CommunicationObjectFaultedException
public static readonly IMyCommunicationService GlobalCommunicationChannel =
new ChannelFactory<IMyCommunicationService>("NetTcpBinding_IMyCommunicationService").CreateChannel();
De tous les sites que je suis le var statique accède « GlobalCommunicationChannel ».
Cela fonctionne très bien jusqu'à présent. Mais parfois, dans l'environnement de production, j'obtiens un CommunicationObjectFaultedException. Il est dit que je ne peux pas utiliser mon objet GlobalCommunicationChannel en tant qu'objet "System.ServiceModel.Channels.ServiceChannel" est en état d'erreur.
Je ne reçois pas plus d'informations que cela. Après quelques minutes, il fonctionne à nouveau. Je ne sais pas pourquoi. Je pense que la connexion est rétablie ou quelque chose comme ça.
Qu'est-ce qui provoque cette erreur?
Y at-il un moyen d'éviter cette erreur à l'avenir sans ajouter un try/catch et une tentative partout?
Merci beaucoup d'avance pour votre réponse!
Quels SessionMode et InstanceContextMode utilisez-vous? – Larsenal
InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ModeConcurrence.Multiple. La sécurité des threads est réalisée sur le serveur. Pour autant que je comprenne, je n'ai pas besoin de sécurité de thread sur la fin du client pour le ServiceChannel. – Chris
Mais qu'en est-il de SessionMode? Il se peut que vos sessions ne se terminent pas. – Larsenal