Почему ASP.NET SmtpClient.Send() делает мой сайт недоступным?

У меня есть приложение ASP MVC 2, через которое я иногда отправляю электронные письма с помощью SmtpClient.Send(). Как правило, электронные письма рассылаются пакетами от 1 до 50 письмен, причем между пакетами проходят часы или даже дни. У меня все это настроено так, что электронные письма отправляются просто отлично. Но проблема в том, что когда отправляются электронные письма, мой сайт внезапно становится недоступным примерно на 15 минут, и я понятия не имею, почему.

Мой сайт размещен на общем сервере Windows 2008 на стороннем веб-хостинге.

Вот соответствующий раздел в моем файле web.config, отредактированный для конфиденциальности:

<system.net> 
  <mailSettings>
    <smtp deliveryMethod="Network" from="[email protected]">
      <network host="mail.DOMAIN.COM" userName="username" password="password"/>
    </smtp>
  </mailSettings>
</system.net> 

У кого-нибудь есть какие-либо мысли или идеи относительно того, почему это может происходить? Я уже какое-то время пытаюсь исследовать это и гуглить, но я просто ничего не придумываю.


person campbelt    schedule 11.07.2010    source источник


Ответы (2)


Это действительно может быть много разных вещей, но..

Первое, что я предлагаю вам сделать, это включить ASP.NET Health Monitoring на вашем сайте. Мы надеемся, что это должно помочь вам увидеть исключение, вызывающее эту проблему (руководство к использованию Health Monitoring).

По понятным причинам не выбирайте Mail Provider для отправки вам ваших исключений — возможно, используйте SQL-провайдера или напишите собственный провайдер, который записывает в файл.

Я бы также попросил ваших хостов заглянуть в журнал событий для получения любой информации, которая может быть полезной.

Надеюсь, это поможет.

person Gavin Osborn    schedule 11.07.2010

Электронная почта может быть дорогостоящей операцией. Рассматривали ли вы возможность использования асинхронной отправки электронной почты, чтобы процесс не блокировал ваш основной поток?

person sfuqua    schedule 10.01.2011