如何更新ASP.Net中web.config
文件中的设置?
<appSettings>
<add key="DataSource" value="localhost\SQLEXPRESS,1433">
<add key="InitialCatalog" value="CenTimetracker" />
<add key="user" value="uzer" /><add key="password" value="pazz" />
<add key="IntegratedSecurity" value="True" />
<add key="configured" value="False" />
</appSettings>
我正在开发一个ASP.NET网站,我正在使用web.config文件来保存数据库连接的详细信息。如上面的代码段所示。
我正在使用以下代码在运行时检索已保存的应用程序设置
string dataSource = ConfigurationManager.AppSettings["DataSource"].ToString();
如何将文本框中的值分配给web.config文件?我使用了以下代码,但它没有保存配置文件。
ConfigurationManager.AppSettings["DataSource"] = TextDataSource.Text;
答案 0 :(得分:5)
Configuration myConfiguration = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
myConfiguration.AppSettings.Settings["DataSource"].Value = "some value";
myConfiguration.Save();
希望它有所帮助。
答案 1 :(得分:0)
@KeizerßloodŚucker:您可以按如下方式更改您的appsetting值:
Configuration myConfiguration = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("path of webconfig file");
myConfiguration.ConnectionStrings.ConnectionStrings["myDatabaseName"].ConnectionString = txtConnectionString.Text;
myConfiguration.AppSettings.Settings.Add("key","value");
myConfiguration.Save();
答案 2 :(得分:0)
除了使用Configuration.Save()保存配置外,还需要注意保存文件的文件权限。您需要查看用于运行应用程序的帐户,然后将该帐户的“修改/写入”权限添加到web.config。如果允许匿名访问,通常需要设置iusr_ [server]的权限。在IIS中查找这些信息。
答案 3 :(得分:0)
您还可以在尝试使用此值的同一页面上加载其他值。 我在调试模式下使用这样的东西。 我选择这个是因为上面的方法删除了与应用设置相关的任何评论。
public string _path;
public string Path
{
get
{
if(_path == null || _path == "")
{
if (System.Diagnostics.Debugger.IsAttached)
{
_path = "localhost\SQLEXPRESS,1433";
}
else
{
_path = ConfigurationManager.AppSettings["DataSource"];
}
return _path;
}
return _path;
}
}