Ceci est ma première tentative d'utiliser WCF donc il peut y avoir quelque chose de fondamentalement mauvais dans cette approche - si oui, je suis heureux de passer à un autre modèle. En un coup d'œil, je pensais que la réponse à this question aurait fonctionné, mais mon scénario semble être différent.Pourquoi un service Web WCF hébergé dans IIS cesserait-il de répondre de manière aléatoire?
J'ai un site Web ASP.NET MVC où les contrôleurs accèdent à la classe client WCF par un dépôt intermédiaire. Le référentiel est simplement un wrapper autour du client WCF qui l'instancie une fois et définit l'adresse de point de terminaison appropriée. Je peux accéder à des pages différentes sur le site Web jusqu'à un point apparemment aléatoire où le service WCF commencera à expirer. Peu importe quelle méthode j'appelle non plus - c'est le délai d'attente sur les différents. Je ne vois aucune exception sur la machine IIS hébergeant le service WCF non plus; le journal des événements est vide. Une méthode simple comme GetCustomerByName()
qui a fonctionné deux minutes plus tôt ne sera plus, donc je pense que c'est plus à faire avec la communication WCF plutôt que le service lui-même.
Si je tente d'utiliser le client de test WCF après un de ces délais d'attente se produit, elle aussi échouer. Mais, si j'attends un peu (et que je choisis "commencer un nouveau proxy"), les choses vont fonctionner à nouveau.
Je suis très confus - dois-je créer une nouvelle instance du client WCF chaque fois que je veux l'utiliser dans mon dépôt? Y a-t-il une autre façon d'utiliser le client? Envelopper chaque appel dans Open()/Close()
ne fonctionne pas non plus puisque le premier appel à Close()
place l'objet dans un état éliminé.
Je doute qu'il est WCF - plus probablement, il est IIS et les pools d'applications ASP.NET qui bloquent votre communication. L'hébergement d'IIS pour WCF est une solution ..... sous-optimale - j'hébergerais toujours des services de WCF dans mes propres services de NT ou applications de console. –
Je suis un peu confus. Votre application MVC utilise-t-elle un service WCF hébergé dans une autre instance IIS? –
marc_s Avez-vous plus d'informations sur pourquoi l'hébergement de WCF dans IIS est sous-optimal? Nous devons déployer ce service sur le site du client et le moyen le plus simple de les faire accepter semble être l'hébergement dans IIS. – Jedidja