2 votes

Problème trivial avec ASP.NET 1.1 et SMTP

Le serveur fonctionne sur :

  • Windows Server Standard sur SP2
  • IIS 7 avec ASP.NET 1.1
  • IIS 6 pour SMTP

Le serveur héberge de nombreux sites Web fonctionnant sous ASP.NET 1.1. Ces sites utilisent le serveur SMTP intégré à IIS6.

Le SMTP fonctionne bien pendant un certain temps, mais après quelques semaines ou mois, il cesse d'envoyer des courriels. J'ai essayé d'en envoyer un via Telnet et tout semble aller bien, donc le serveur SMTP n'est pas en cause.

J'ai essayé de redémarrer les pools d'applications mais cela n'a eu aucun effet. J'ai également essayé de redémarrer IIS 7.0 et IIS 6.0, mais les messages ne sont toujours pas envoyés.

Le seul moyen temporaire que nous avons trouvé pour résoudre ce problème était de redémarrer le serveur.

Y a-t-il un cache ASP.NET que nous pouvons effacer ou qui cause ce problème ?

UPDATE :

J'ai la solution !

C'était une intuition mais j'ai redémarré les services Print Spooler et DNS Client sur le serveur et maintenant les emails sont envoyés avec succès.

Mais je ne sais toujours pas pourquoi cela se produit pour les projets ASP.NET 1.1.

UPDATE 2 :

Le problème est réapparu aujourd'hui ! J'ai eu de la chance, je pensais devoir attendre des semaines pour le tester à nouveau.

J'ai commencé par redémarrer le service Client DNS. Aucun effet, je ne peux toujours pas envoyer d'e-mails. J'ai ensuite redémarré le service Print Spooler et à ma grande surprise, c'était le coupable ! ? ????????

Comment est-ce que c'est même, quoi, pourquoi ? huh ?

J'ai désactivé le Spooler d'impression de façon permanente. Le courrier électronique fonctionne toujours. Je ne pense pas que nous imprimions quoi que ce soit ou que le spouleur d'impression effectue d'autres tâches que l'impression.

Si cela fait quelque chose, veuillez commenter ci-dessous.

UPDATE 3 :

La réparation était temporaire. J'ai découvert aujourd'hui que WINSOCK refusait les connexions à partir d'ASP.NET mais acceptait les connexions via le courrier telnet.

J'essaie toujours de comprendre pourquoi cela se produit.

UPDATE 4 :

J'ai finalement fait un redémarrage avec les corrections de corruption WINSOCK appliquées. J'espère que cela tiendra pour toujours et que le bug ne réapparaîtra pas.

J'ai ajouté ceci à mon blog : http://www.moushigo.com/index.php/2012/02/22/trivial-smtp-asp-net-winsock-connectivity-issues/

0voto

lubos hasko Points 13669

Vous pouvez envisager d'utiliser un service externe d'envoi de courrier électronique tel que AWS SES , Mailgun , Portmark o Sendgrid . Cela augmentera probablement aussi la délivrabilité de vos courriels.

0voto

Moushigo Points 21

J'ai la solution !

C'était une intuition mais j'ai redémarré les services Print Spooler et DNS Client sur le serveur et maintenant les emails sont envoyés avec succès.

Mais je ne sais toujours pas pourquoi cela se produit pour les projets ASP.NET 1.1.

0voto

Cathie Points 1

La VRAIE question est la suivante : pourquoi le redémarrage de services non liés a-t-il permis de résoudre le problème ? (Print spooler ???) Le DNS est pertinent, je vous l'accorde. Mais quand même, c'est bizarre. Je suis d'accord avec Friism pour dire que l'utilisation d'un serveur SMTP externe serait plus agréable, ils sont si faciles à connecter en ASP.NET que vous pourriez aussi bien aller directement à un serveur SMTP de liste blanche, authentifié et tout, plutôt que d'utiliser un serveur relais local. Relayer le courrier électronique semble être un processus très incertain avec toutes les règles concernant le spam et autres de nos jours.

Un autre conseil pour l'envoi via des serveurs SMTP externes est d'utiliser le port 587 plutôt que le port 25. Certains FAI n'aiment pas que l'on utilise le port 25 pour autre chose que leur propre serveur de messagerie préféré.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X