Тривиальная проблема с ASP.NET 1.1 и SMTP

Сервер работает на:

  • Windows Server Standard на SP2
  • IIS 7 с ASP.NET 1.1
  • IIS 6 для SMTP

На сервере размещено много сайтов, работающих под управлением ASP.NET 1.1. Эти сайты используют встроенный SMTP-сервер на IIS6.

Некоторое время SMTP работает нормально, но через несколько недель или месяцев перестанет отправлять электронные письма. Я попытался отправить один через Telnet, кажется, хорошо, поэтому SMTP-сервер не проблема.

Я попытался перезапустить пулы приложений, но это никак не повлияло. Я также попытался перезапустить IIS 7.0 и IIS 6.0, он все еще не будет отправлять сообщения.

Единственный временный способ исправить это - перезапустить сервер.

Есть ли кэш ASP.NET, который мы можем очистить, или он вызывает эту проблему?

ОБНОВИТЬ:

Получил исправление!

Это была догадка, но я перезапустил службы диспетчера очереди печати и DNS-клиента на сервере, и теперь электронные письма отправляются успешно.

Но я до сих пор знаю, почему это происходит в проектах ASP.NET 1.1.

ОБНОВЛЕНИЕ 2:

Проблема появилась снова сегодня! Мне повезло, я думал, что мне пришлось ждать недели, чтобы проверить это снова.

Я начал с перезапуска службы DNS-клиента. Никакой эффект по-прежнему не может отправлять электронные письма. Затем я перезапустил службу Print Spooler, и, к моему удивлению, это был виновник!?????????

Как это даже, что, почему? да?

Я навсегда отключил диспетчер очереди печати. Электронная почта все еще работает. Я не думаю, что мы печатаем что-либо или если Диспетчер очереди печати выполняет какие-либо другие задачи, кроме печати.

Если это что-то делает, пожалуйста, прокомментируйте ниже.

ОБНОВЛЕНИЕ 3:

Исправление было временным. Сегодня я узнал, что WINSOCK отказывался от соединений из ASP.NET, но принимал соединения через почту telnet.

Все еще пытаюсь выяснить, почему это происходит.

ОБНОВЛЕНИЕ 4:

Ну наконец-то сделали перезагрузку с примененными исправлениями WINSOCK. Надеюсь, что так будет всегда, и ошибка не появится снова.

Добавил это в мой блог: http://www.moushigo.com/index.php/2012/02/22/trivial-smtp-asp-net-winsock-connectivity-issues/

3 ответа

Получил исправление!

Это была догадка, но я перезапустил службы диспетчера очереди печати и DNS-клиента на сервере, и теперь электронные письма отправляются успешно.

Но я до сих пор знаю, почему это происходит в проектах ASP.NET 1.1.

Возможно, вы захотите использовать внешнюю службу доставки электронной почты, такую ​​как AWS SES, Mailgun, Portmark или Sendgrid. Это, вероятно, также увеличит доставку ваших писем.

РЕАЛЬНЫЙ вопрос: почему перезапуск несвязанных сервисов решил проблему? (Спулер печати???) DNS актуален, я вам это дам. Но все же - это странно. Я согласен с Friism, что использование внешнего SMTP-сервера было бы лучше, к ним так легко подключиться в ASP.NET, что вы могли бы также перейти прямо к SMTP-серверу из белого списка, прошедшему проверку подлинности и все, в отличие от использования локального сервер ретрансляции. Пересылка электронной почты, кажется, очень ненадежный процесс со всеми правилами, касающимися спама, а не в наши дни.

Еще один совет для отправки через внешние SMTP-серверы - это использовать порт 587, а не порт 25. Некоторые интернет-провайдеры не любят, когда люди используют порт 25 для чего-либо, кроме своего предпочтительного почтового сервера.

Другие вопросы по тегам