我的web.config中有两个键,我需要在ASPX页面中进行编辑,键是..
<add key="atlasuser" value="username" />
<add key="atlaspass" value="password" />
我已经在我的ASPX页面背后的代码中写了这个
Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
string u_user = txtUsername.Text;
string u_pass = txtPassword.Text;
string crmSID = Request.QueryString["SID"];
config.AppSettings.Settings["atlasuser"].Value = u_user;
config.AppSettings.Settings["atlaspass"].Value = u_pass;
config.Save(ConfigurationSaveMode.Full);
当我编辑字段并单击“保存”时,我收到一条解析错误消息,指出对.tmp文件的访问被拒绝,并且在源错误框中没有显示相关的源代码行。
我正在运行Windows 7,我已经检查过NETWORK SERVICE对该目录具有完全读写权限。
任何人都可以帮助我吗?
答案 0 :(得分:0)
这篇msdn文章似乎认为您将要定义一个空字符串来打开默认配置项。
http://msdn.microsoft.com/en-us/library/ms151456.aspx
如果你这样做:
Configuration config = WebConfigurationManager.OpenWebConfiguration(null);
这应该允许你打开配置来读/写,但正如其他人所说的那样,这不是存储此类信息的最佳位置
答案 1 :(得分:0)
检查配置文件是否设置为只读?
PS - 如果您在Web配置中存储临时信息,您的设计可能有问题。
答案 2 :(得分:0)
web.config
。
如果您确实需要允许从ASPX页面更改配置,您应该保存在数据库或其他外部xml文件中,然后在需要时读取这些设置。
答案 3 :(得分:0)
您可以编辑web.config文件本身。只需确保您运行应用程序的帐户具有相应的文件系统权限,即可写入应用程序目录:
void editWebConfig(string key, string newValue, string filePath)
{
var xml = new XmlDocument();
xml.Load(filePath);
using(FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite))
{
xml.SelectSingleNode("//configuration/appSettings/add[@key = '" + key + "']").Attributes["value"].Value = newValue;
xml.Save(fs);
}
}
然后你打电话
editWebConfig("atlasuser", txtUsername.Text, Server.MapPath(".") + "\\web.config");