سؤال

لبعض الوقت الآن لقد تم تخزين ارتباطي والتطبيق الإعدادات في ملف خارجي وعادل الرجوع هذا الملف عن طريق بلدي الملف web.config. هذا يعمل بشكل جيد لأنه يتيح لي للحفاظ على سلاسل اتصال منفصلة وإعدادات التطبيق. هذا هو مفيد حقا منذ أجد خلال تطوير وأنا غالبا ما تجعل العديد من التغييرات على webconfig وأنا أكره الحاجة إلى إدارة البيئة قيم معينة في كل مرة كنت بحاجة لتحديث جهازي الملف 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" />

على تحديث : في يبدو أنه قد تحتاج إلى الذهاب فعلا في عقدة بروتوكول نقل البريد الإلكتروني للعمل بشكل صحيح، لذلك أنا قمت بتحديث رمز أعلاه تشير إلى أن - نفس الفكرة، يجب فقط هذا واحد يعمل. :)

نصائح أخرى

ولست متأكدا إذا ما لدي هنا هو فقط لإصدارات أحدث من .NET. حصلت على خطأ وقت التشغيل باستخدام إجابة مقبولة.

يرجى تحديث إجابة مقبولة مع كتلة التعليمات البرمجية أدناه إذا كان يعمل مع إصدارات أحدث من .NET. كما ينبغي أن تكون العقدة SMTP في ملف منفصل - وليس فقط عقدة الشبكة. يتم استبدال عقدة SMTP كاملة في ملف Web.config الفعلي الملف الذي وضع هناك - خلافا لما حدث في appSettings حيث يبدو أن تضيف إلى ذلك

الملف web.config -

  <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