web.config
C #을 사용하여 프로그래밍 방식으로 어떻게 수정 / 조작 할 수 있습니까? 구성 개체를 사용할 수 있습니까 web.config
? 그렇다면 구성 개체에를 어떻게 로드 할 수 있습니까? 연결 문자열을 변경하는 전체 예제를 갖고 싶습니다. 수정 후에는 web.config
하드 디스크에 다시 기록해야합니다.
답변
다음은 몇 가지 코드입니다.
var configuration = WebConfigurationManager.OpenWebConfiguration("~");
var section = (ConnectionStringsSection)configuration.GetSection("connectionStrings");
section.ConnectionStrings["MyConnectionString"].ConnectionString = "Data Source=...";
configuration.Save();
답변
Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
ConnectionStringsSection section = config.GetSection("connectionStrings") as ConnectionStringsSection;
//section.SectionInformation.UnprotectSection();
section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
config.Save();
답변
web.config 파일은 xml 파일이므로 xmldocument 클래스를 사용하여 web.config를 열 수 있습니다. 업데이트 할 xml 파일에서 노드를 가져온 다음 xml 파일을 저장합니다.
다음은 web.config 파일을 프로그래밍 방식으로 업데이트하는 방법을 자세히 설명하는 URL입니다.
http://patelshailesh.com/index.php/update-web-config-programmatically
참고 : web.config를 변경하면 ASP.NET이 변경 사항을 감지하고 응용 프로그램을 다시로드 (응용 프로그램 풀 재활용)하고 세션, 응용 프로그램 및 캐시에 보관 된 데이터의 효과가 손실됩니다 (세션 상태 가정). InProc이고 상태 서버 또는 데이터베이스를 사용하지 않음).
답변
이것은 AppSettings를 업데이트하는 데 사용하는 방법이며 웹 및 데스크톱 응용 프로그램 모두에서 작동합니다. connectionStrings를 편집해야하는 경우 해당 값을 가져온 System.Configuration.ConnectionStringSettings config = configFile.ConnectionStrings.ConnectionStrings["YourConnectionStringName"];
다음 config.ConnectionString = "your connection string";
. 이 connectionStrings
섹션에 의견 Web.Config
이 있으면 제거됩니다.
private void UpdateAppSettings(string key, string value)
{
System.Configuration.Configuration configFile = null;
if (System.Web.HttpContext.Current != null)
{
configFile =
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
}
else
{
configFile =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
}
var settings = configFile.AppSettings.Settings;
if (settings[key] == null)
{
settings.Add(key, value);
}
else
{
settings[key].Value = value;
}
configFile.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name);
}