Сервер работает на:
На сервере размещено множество веб-сайтов, работающих под управлением ASP.NET 1.1. Эти веб-сайты используют встроенный SMTP-сервер на IIS6.
Некоторое время SMTP работает нормально, но через несколько недель или месяцев перестанет отправлять электронные письма. Я попытался отправить его через Telnet. Кажется, все в порядке, поэтому проблема не в SMTP-сервере.
Я попытался перезапустить пулы приложений, но это ни на что не повлияло. Я также попытался перезапустить IIS 7.0 и IIS 6.0, он по-прежнему не отправляет сообщения.
Единственный временный способ исправить это - перезапустить сервер.
Есть ли кеш ASP.NET, который мы можем очистить, или вызывает эту проблему?
ОБНОВИТЬ:
Получил исправление!
Это была догадка, но я перезапустил службы диспетчера очереди печати и DNS-клиента на сервере, и теперь электронные письма отправляются успешно.
Но я все еще знаю, почему это происходит с проектами ASP.NET 1.1.
ОБНОВЛЕНИЕ 2:
Выпуск сегодня снова появился! Мне повезло, я думал, что мне придется ждать недели, чтобы снова его протестировать.
Я начал с перезапуска службы DNS-клиента. Никакого эффекта по-прежнему нельзя отправлять электронные письма. Затем я перезапустил службу диспетчера очереди печати и, к моему удивлению, был виноват! ?????????
Как это вообще, что, почему? а?
Я отключил диспетчер очереди печати навсегда. Электронная почта по-прежнему работает. Я не думаю, что мы печатаем что-либо, или если диспетчер очереди печати выполняет какие-либо другие задачи, кроме печати.
Если он что-то делает, прокомментируйте ниже.
ОБНОВЛЕНИЕ 3:
Исправление было временным. Сегодня я узнал, что WINSOCK отклоняет соединения из ASP.NET, но принимает соединения через почту telnet.
Все еще пытаюсь выяснить, почему это происходит.
ОБНОВЛЕНИЕ 4:
Ну, наконец, сделал перезагрузку с примененными исправлениями повреждения WINSOCK. Надеюсь, это останется навсегда, и ошибка больше не появится.
Добавил это в свой блог: http://www.moushigo.com/index.php/2012/02/22/trivial-smtp-asp-net-winsock-connectivity-issues/
НАСТОЯЩИЙ вопрос: почему перезапуск несвязанных сервисов решил проблему? (Диспетчер очереди печати ???) DNS имеет значение, я вам это дам. Но все же - это странно. Я согласен с Friism в том, что использование внешнего SMTP-сервера было бы лучше, к ним настолько легко подключиться в ASP.NET, что вы могли бы также сразу перейти к SMTP-серверу из белого списка, прошедшему проверку подлинности и все такое, в отличие от использования локального сервер ретрансляции. Ретрансляция электронной почты кажется очень ненадежным процессом со всеми правилами, касающимися спама и прочего.
Еще один совет по отправке через внешние SMTP-серверы - использовать порт 587 вместо порта 25. Некоторым интернет-провайдерам не нравятся люди, использующие порт 25 для чего-либо, кроме предпочитаемого ими почтового сервера.
Получил исправление!
Это была догадка, но я перезапустил службы диспетчера очереди печати и DNS-клиента на сервере, и теперь электронные письма отправляются успешно.
Но я все еще знаю, почему это происходит с проектами ASP.NET 1.1.