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