2010-10-12 87 views
4

我需要更改web.config文件中的数据库连接字符串,但还没有得到一个线索如何去做这件事。有没有人有任何经验?从您的ASP.NET应用程序更改您的web.config

UPDATE
对不起,不是很清楚上面,我希望能够从Web应用程序更改连接字符串,它已经部署

+3

您是否知道修改web.config会重置您的网站?你不应该那样做。 – 2010-10-12 14:46:00

+0

我没有意识到这一点,谢谢。在这种情况下,重置网站可能会好起来,因为数据库连接也会发生变化。 – Jimbo 2010-10-12 14:48:39

+0

我会为web.config中代码更改的任何标记添加注释,以提醒观察者该值可能会更改。有人在将来不知道值可能会改变代码的代码可能会变得困惑。 – DaveB 2010-10-12 15:50:25

回答

2
Configuration myConfiguration = WebConfigurationManager.OpenWebConfiguration("~"); 
//appSettings configuration 
myConfiguration.AppSettings.Settings["xxx"].Value = "yyy"; 
//database connections configuration 
myConfiguration.ConnectionStrings.ConnectionStrings["xxxconnection"].ConnectionString = "yyy"; 
myConfiguration.Save(); 

http://msdn.microsoft.com/en-us/library/system.configuration.configuration.connectionstrings.aspx

编辑:

http://msdn.microsoft.com/en-us/library/system.configuration.connectionstringssection.aspx

此外,由其他人指出的那样,你需要设置正确的权限,但有时使用共享的主机(从经验中)他们会要求您输入您的帐户的用户名和密码,一旦输入该密码,您的web.config就会被更改。所以试试吧,如果它不起作用,并且你没有权限设置权限,那么恐怕你不得不寻找其他的东西。

祝你好运!

+0

谢谢 - 我必须对上面的代码做出一个更改:第3行:'myConfiguration.ConnectionStrings.ConnectionStrings [“xxxconnection”]。ConnectionString =“yyy”;' – Jimbo 2010-10-12 15:00:06

+0

感谢您指出这一点,它对您有用? – Mouhannad 2010-10-12 15:04:51

+0

它没有,只是等到我允许接受答案:) – Jimbo 2010-10-12 15:29:40

1

使用后WebConfigurationManager类如图所示here

由于它是非常敏感的信息,因此需要按照this site(大卫斯特拉顿提出的链接)的说明设置适当的权限。

+0

很好的答案。还有一点,虽然..权限需要适当设置。这篇文章也涵盖了:http://odetocode.com/Articles/418.aspx – David 2010-10-12 14:50:21

+0

@David Stratton:你说得对,权限应该正确设置。考虑到这一点,我会更新我的答案,谢谢。 – 2010-10-12 14:54:38

相关问题