سؤال

البحث في stackoverflow ، وجدت هذا السؤال حول كيفية استرداد إعدادات SMTP من web.config, ، ولكن لا توجد تفاصيل حول كيفية تحديث SMTP مرة أخرى إلى ملف web.config.

لقد بدأت بالرمز التالي:

Configuration webConfig = WebConfigurationManager.OpenWebConfiguration("~");
MailSettingsSectionGroup settings =
  (MailSettingsSectionGroup)webConfig.GetSectionGroup("system.net/mailSettings");
SmtpSection smtp = settings.Smtp;
SmtpNetworkElement net = smtp.Network;

ولكن سرعان SmptSection.Network هو الحصول على (ويعرف أيضا باسم "القراءة فقط").

فكيف من المفترض أن أكتب برمجيا بيانات SMTP الخاصة بي مرة أخرى إلى web.config؟

هل كانت مفيدة؟

المحلول

يجب أن تكون قادرًا على فعل شيء كهذا ، هل هذا يعمل؟:

Configuration webConfig = WebConfigurationManager.OpenWebConfiguration("~");
MailSettingsSectionGroup settings =
    (MailSettingsSectionGroup)webConfig.GetSectionGroup("system.net/mailSettings");
SmtpSection smtp = settings.Smtp;
SmtpNetworkElement net = smtp.Network;
net.Port = 25;
net.Host = "localhost";
webConfig.Save();

نصائح أخرى

نلقي نظرة على هذه المادة: http://www.west-wind.com/weblog/posts/8461.aspx

يبدو أنك بحاجة إلى وصول مرتفع إلى حد ما (أذونات).

على وجه التحديد من المقالة:

protected void Page_Load(object sender, EventArgs e)
{
    Configuration config = WebConfigurationManager.OpenWebConfiguration("~");

    wwDbResourceProviderSection Section = config.GetSection("wwDbResourceProvider") as wwDbResourceProviderSection;

    Section.ShowControlIcons = true;
    config.Save();

    return;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top