Bu son previous question belirtilen aynı şeyi yapmaya çalışıyorum.AppSettings farklı bir .config dosyasında güncellenmiyor Güncel
planım kendi dosyasında bu (appSettings) (Settings.config) sahip olmaktır, ben izinlerini değiştirmek verecektir için: Özünde, burada (tam olarak benim aynı durumdur) dava web süreci kullanıcısına hesap ve bu dosyada tüm düzenlenebilir ayarlarını saklayın (örneğin forum başlığı, açıklama, vb). Ben
config.Save(ConfigurationSaveMode.Minimal, false)
komutu kesilirken
sorun bu soruya kabul çözüm çünkü bunun, ayrı .config dosyasında appSettings kaydetme benim için çalışmıyor yani, bu ayrı her appSettings çoğaltır ana web.config dosyasının appSettings bölümüne (yeni değişikliklerle) dosya.
TemeldePublic Shared Function GetAppSetting(ByVal setting As String) As String
Dim config As System.Configuration.Configuration = _
WebConfigurationManager.OpenWebConfiguration("~")
Return config.AppSettings.Settings(setting).Value
End Function
Public Shared Sub SetAppSetting(ByVal setting As String, ByVal value As String)
Dim config As System.Configuration.Configuration = _
WebConfigurationManager.OpenWebConfiguration("~")
config.AppSettings.Settings(setting).Value = value
config.Save(ConfigurationSaveMode.Minimal, False)
ConfigurationManager.RefreshSection("appSettings")
End Sub
ben ayarları ayrı dosyada yerine ise web.config kaydedilmesini istediğiniz belirten olacağını nerede göremiyorum: Burada (vb.net olarak) benim son kod varsayılan olarak depolandıkları yer. Oh ve bu arada, web.config'in appSettings bölümüne 'file =' özniteliğini eklemek zorunda kaldım, böylece Settings.config appSettings aslında dikkate alınacaktır. Bu özellik olmadan yukarıdaki kod, ayrı .config dosya ayarlarını okumaz. İşte benim web.config appsettings bölümünün kısa bir özetini aşağıda:
<appSettings file="Settings.config">
<add key="RestartApp" value="-1" />
</appSettings>
Ve işte benim Settings.config dosyasının ait tüm içeriğini var: değiştirilen ayarları ile biten Bunun yerine
<appSettings>
<add key="AppTitle" value="MVC Web Access" />
<add key="DefaultWebpage" />
<add key="CustomCSS" />
<add key="TktsEmailTo" value="[email protected]" />
<add key="EmailFrom" value="[email protected]" />
<add key="EmailFromSMTP" value="mail.email.com" />
<add key="EmailFromPW" value="fakePassword" />
</appSettings>
.save komutundan sonra benim Settings.config dosyasım, web.config dosyasındaki appSettings bölümü bu (ve Settings.config dosyası dokunulmamış olarak kalır):
<appSettings file="Settings.config">
<add key="RestartApp" value="-1" />
<add key="AppTitle" value="New title" />
<add key="DefaultWebpage" value="index.aspx" />
<add key="CustomCSS" />
<add key="TktsEmailTo" value="[email protected]" />
<add key="EmailFrom" value="[email protected]" />
<add key="EmailFromSMTP" value="mail.email.com" />
<add key="EmailFromPW" value="NewFakePassword" />
</appSettings>
Hmm, Koduma başka bir göz atacağım ve yaptığınız şeyle herhangi bir fark olup olmadığını görebileceğim ... –
Kurt - aslında benim örneğim * ayrı bir .config dosyası kullanıyordu ve İki kere kontrol ettim, onunla iyi çalışıyor. –
Bir önceki soruya verdiğim yanıt, yayınlanmış olan kodun alınmasına odaklanmıştı - sadece web.config dosyasını işleyen kod. Bunu aslında ayrı bir konfigürasyon dosyası ile yapıp yapamayacağından emin değilim ... Keith aslında böyle yapmıyorsa. –