Вопрос

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

Могу ли я добиться этого с помощью разделов конфигурации SMTP в файле web.config.

Это было полезно?

Решение

Конечно, вы можете использовать атрибут configSource.

Пример:

<system.net>
  <mailSettings>
   <smtp configSource="MailSettings.config"/>
  </mailSettings>
</system.net>

Затем поместите данные конфигурации mailSettings в MailSettings.config.

Тогда ваш файл MailSettings.config будет иметь что-то вроде:

    <network 
    host="relayServerHostname" 
    port="portNumber"
    userName="username"
    password="password" />

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

Другие советы

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

Пожалуйста, обновите принятый ответ блоком кода ниже, если работаете с более новыми версиями .NET.Узел smtp также должен быть в отдельном файле, а не только сетевой узел.Весь узел smtp в реальном файле Web.config заменяется файлом, который вы туда поместили, в отличие от appSettings, где он, кажется, добавляется к нему.

Веб.конфигурация -

  <system.net>
        <mailSettings>
          <smtp configSource="your-source-file">
          </smtp>
        </mailSettings>
    </system.net>

Ваш файл -

   <smtp from="noreply@example.com">
      <network
        host="your-host"
        port="your-port"
        userName="your-user-name"
        password="your-password"/>
    </smtp>

Мое программное обеспечение хранит его в реестре даже в рабочей среде.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top