2017-07-26 5 views
1

Je dispose d'un serveur web ASP .Net de base déployé sur IIS 7.5 (Windows 2008 R2). J'ai des contrôleurs ainsi que des classes d'écoute (qui attendent qu'un message arrive sur un message RabbitMQ) qui effectuent la même fonctionnalité. Le problème est que chaque fois que webapi est déployé sur IIS ou a un certain temps d'inactivité, les messages RabbitMQ ne sont pas détectés. Ce n'est que si je fais un appel d'API au contrôle que l'application «se réveille» et prend le message.L'application Web de base ASP .Net déployée sur Kestrel passe en mode inactif

Tweaks J'ai essayé: Dans le pool d'applications,

  1. set 'Délai d'inactivité' à 0.
  2. définissez le paramètre "Disable Overlapped Recycled" sur true.
  3. définir 'Désactiver le recyclage pour les modifications de configuration'.

Je n'ai aucune idée de ce qui cause cela. J'ai besoin de l'application pour récupérer les messages immédiatement et ne pas avoir de temps d'inactivité. Quelqu'un pourrait-il me diriger dans la bonne direction?

+0

Pourriez-vous le code partie sur comment et quand vous écoutez sur les messages RabbitMQ. Aussi voyez-vous le processus w3wp.exe s'exécuter toujours dans le serveur IIS? –

Répondre

0

Pour contourner le problème, vous pouvez conserver votre application active en envoyant des demandes en permanence. Dans mon cas, je n'ai même pas accès à la modification des paramètres IIS.

Pour envoyer des demandes que j'utilise Disponibilité fonctionnalité dans Insights application - il vous permet de créer des tests qui envoient des demandes GET à votre application aussi souvent que toutes les 5 minutes. Vous pouvez en lire plus à ce sujet here.