Конфигурация SmtpClient и app.config system.net - PullRequest
9 голосов
/ 30 августа 2011

У меня проблема с библиотекой .NET 3.5, которую я разрабатываю для отправки электронных писем. Я положил system.net конфигурацию в app.config:

<system.net>
  <mailSettings>
    <smtp from="mail@domain.com">
      <network host="myserver.com" port="25" defaultCredentials="true" />
    </smtp>
  </mailSettings>
</system.net>

И я создаю экземпляр SmtpClient без параметров:

SmtpClient client = new SmtpClient();

Но конфигурация не читается (я пытаюсь проверить библиотеку с помощью NUnit), и я получаю System.InvalidOperationException, потому что конфигурация не читается и, следовательно, хост является нулевым.

Разве конфигурация не должна читаться автоматически?

Ответы [ 2 ]

12 голосов
/ 30 августа 2011

Убедитесь, что вы добавили свой блок конфигурации (как показано выше) в {appName} .exe.config или web.config - конфигурация для библиотеки классов берется из одного из этих файлов во время выполнения, а не из приложения.Конфигурация библиотеки классов.

0 голосов
/ 30 августа 2011

Я только что понял, что определенно поступаю неправильно (есть также аналогичный пост Джона об этом , и решение есть ...).

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

Спасибо Джону и Давиде за указание на правильное направление!

...