2010-02-14 4 views
75

Как я могу модифицировать/управлять программным обеспечением web.config с помощью C#? Можно ли использовать объект конфигурации, и, если да, как я могу загрузить web.config в объект конфигурации? Я хотел бы иметь полный пример изменения строки подключения. После изменения web.config следует записать обратно на жесткий диск.Измените web.config программно на C# (.NET)

+0

Отметьте его сообщение в блоге о том, как [программно манипулировать web.config в ASP.NET 2.0 и ASP.NET 3.5] (http://www.dotnetcurry.com/ShowArticle.aspx?ID=102) Альтернативно проверьте этот вопрос у которого есть ответ на ваш вопрос. [Как настроить конфигурацию строки подключения в формате .net?] (Http://stackoverflow.com/questions/360024/how-do-i-set-a-connection-string-config-programatically-in-net/ 1312739) – Shoban

ответ

94

Здесь какой-то код:

var configuration = WebConfigurationManager.OpenWebConfiguration("~"); 
var section = (ConnectionStringsSection)configuration.GetSection("connectionStrings"); 
section.ConnectionStrings["MyConnectionString"].ConnectionString = "Data Source=..."; 
configuration.Save(); 

Другие примеры в this article, вам, возможно, придется взглянуть на impersonation.

+0

Это дает мне ссылку на объект, не установленную на экземпляр объекта. Исключение, кто-нибудь еще сталкивается с этим? – Skami

+0

Каково имя вашей строки подключения в файле web.config? –

+0

ссылка на статью: – Vitall

11
Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~"); 
ConnectionStringsSection section = config.GetSection("connectionStrings") as ConnectionStringsSection; 
//section.SectionInformation.UnprotectSection(); 
section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider"); 
config.Save(); 
+0

Как получить идентификатор пользователя из переменной раздела? – Niks

5

Поскольку файл web.config является файлом xml, вы можете открыть web.config с использованием класса xmldocument. Получите узел из этого xml-файла, который вы хотите обновить, а затем сохраните файл xml.

вот URL, который более подробно объясняет, как можно программно обновлять файл web.config.

http://patelshailesh.com/index.php/update-web-config-programmatically

Примечание: если вы сделаете какие-либо изменения в web.config, ASP.NET обнаруживает, что изменения, и она будет перезагрузить приложение (рецикл пула приложений) и эффект того, что это данные хранятся в сессии, Приложение, и Cache будет потерян (при условии, что состояние сеанса - InProc и не использует государственный сервер или базу данных).

Смежные вопросы