2011-09-13 4 views
0

ASPX 페이지에서 web.config 파일을 업데이트 .. 내가 가진C# 편집, 내가 키가 ASPX 페이지에서 편집 할 수 있도록 할 필요가 내 Web.config의 두 키가

<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

를 호출 다음

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); } } 

하면 IIS 사용자가 있습니까 이러한 필요한 권한? –

+0

web.config mint에 기록하면 세션이 재설정되고 모든 사용자가 다시 로그인해야합니다. 구성 파일이 웹 자체에서 변경 될 때 고려해야합니다. 구성이 잘못된 경우 사용할 수없는 사이트로 인해 막히지 않을 수도 있습니다. – Sascha

+0

web.config 파일은 로그인 정보를 저장하고보기 좋은 장소가 아닙니다. 세션에서 대신, http://www.codeproject.com/KB/aspnet/ExploringSession.aspx – Olle89

답변

0

이 msdn 기사는 기본 구성 항목을 열 때 null 문자열을 정의하려고한다고 생각하는 것 같습니다.

http://msdn.microsoft.com/en-us/library/ms151456.aspx

당신이 할 경우

Configuration config = WebConfigurationManager.OpenWebConfiguration(null); 

이는 읽기/쓰기 위해 설정을 열 수 있도록해야하지만, 다른 사람들이 말했듯이이 정보의 유형을 저장하는 가장 좋은 장소가 아니다

0

구성 파일이 읽기 전용으로 설정되어 있지 않은지 확인하십시오.

PS - 웹 구성에 임시 정보를 저장하는 경우 디자인에 문제가있을 수 있습니다.

1

web.config은 ASP.NET 응용 프로그램에서 편집 할 수 없습니다.

이론 .NET Framework는 app 구성 파일 (ASP.NET 응용 프로그램의 경우 web.config)에 대한 변경 사항을 편집/저장하기 위해 apis를 제공하지만 실제로 IIS에서 모든 단일 web.config가 변경된 시간 IIS 응용 프로그램이 다시 시작되므로. NET에서이를 방지하기 위해 저장을 허용하지 않습니다.

ASPX 페이지에서 구성 변경을 허용해야하는 경우 데이터베이스 나 다른 외부 XML 파일에 저장해야하며 필요한 경우 해당 설정을 읽어야합니다.

+2

저는 이것이 .NET 4와 맞지 않는다고 확신합니다. 과거에는 aspx 페이지에서 web.config를 편집 할 수있는 기능이있었습니다. – ChrisPatrick

0

web.config 파일 자체를 편집 할 수 있습니다. 그냥 당신이에서 응용 프로그램을 실행하는 계정이 응용 프로그램 디렉토리에 쓸 수 있도록 해당 파일 시스템 사용 권한이 있는지 확인하십시오 : 당신은 그냥

editWebConfig("atlasuser", txtUsername.Text, Server.MapPath(".") + "\\web.config"); 
관련 문제