2010-11-04 19 views
4

En recherchant StackOverflow, j'ai trouvé this question on how to Retrieve SMTP settings from Web.Config, mais pas de détails sur la façon de mettre à jour le SMTP dans le fichier web.config.Comment stocker par programme (enregistrer) les détails du serveur SMTP dans web.config

J'ai commencé avec le code suivant:

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

mais a été rapidement clued par IntelliSense que SmptSection.Network est un Get (alias "lecture seule") accesseur.

Alors, comment suis-je censé écrire mes données SMTP dans web.config?

Répondre

4

Vous devriez être en mesure de faire quelque chose comme ça, ça marche ?:

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(); 
+0

Duh. Merci. C'était ça. :-) – Pretzel

0

Jetez un oeil à cet article: http://www.west-wind.com/WebLog/posts/8461.aspx

On dirait que vous avez besoin d'un accès assez élevé (permissions) bien.

Plus précisément de l'article:

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; 
} 
+0

Je pris un coup d'œil à l'article et il ressemble à une description sur la façon de créer des sections personnalisées. J'espérais une façon plus standardisée de réécrire la section "System.Net" déjà établie du fichier XML web.config. – Pretzel