2014-10-03 2 views
2

저는 내 문제에 대한 최선의 해결책이 무엇인지 파악하기 위해 인터넷을 돌아 다니고 있습니다 만 만족스러운 답변을 찾지 못하는 것 같습니다.releasemode에서 web.config를 프로그램 적으로 변경하십시오.

내 웹 사이트 관리자가 서버 설정 (전자 메일, 암호 및 Exchange 서버 끝점 URL)을 변경할 수 있기를 바랍니다. 브라우저에서이 작업을 수행 할 수 있어야합니다. web.config 파일을 열어야합니다. 설정이 거의 설정되어 있지 않지만 설정 가능성이 있습니다. 때문에,

<appSettings> 
     <add key="ewsUser" value="[email protected]" /> 
     <add key="ewsPW" value="somePW" /> 
     <add key="ewsUrl" value="https://outlook.ews.com/xxx.asmx" /> 
    </appSettings> 

내 큰 관심사가 시작하는 곳은 다음과 같습니다

내가 지금 무엇을, 관리자가 내 양식을 채우고 나면, 내 컨트롤러가 된 web.config appSettings는에 새 값을 설정하는 것입니다 내 모든 연구는 인터넷을 통해. 내 응용 프로그램이 온라인 상태이고 24 시간 365 일 수백 명이 사용하고 있다고 가정 해 봅시다. 그러면이 솔루션이 문제가됩니까? web.config 파일을 변경하면 클라이언트를 버리지 않고 서버에서 응용 프로그램이 다시 시작됩니다. 그러나 이것이 바로 클라이언트가 바로 그 순간에있는 세션에 영향을 미칠 것입니까? 서버가 세션을 잊어 버릴 수 있습니까?

나쁜 습관에 대해 조금 읽었으며 this article은 새로운 .config 파일을 만들고 web.config AppSettings에서 해당 구성 파일에 연결하여 해결할 수있는 방법을 설명합니다. 그러나 이것이 정말로 필요한가? 나는 현재의 솔루션보다 조금 더 어지럽다 고 생각한다.

모든 아이디어, 생각 및/또는 사실을 밝힙니다.

답변

0

web.config에 쓰기는 실제로 나쁜 습관입니다. web.config 파일을 변경하면 응용 프로그램이 다시 시작됩니다. 세션에 대해서는 잘 모르지만 아마 초기화 될 것입니다. 그리고 새로운 버전의 응용 프로그램을 배포하고 실수로 web.config를 덮어 쓰는 상황은 어떻습니까? 도움이 될 수 두 솔루션 :

  • 데이터베이스에 간단한 키/값 테이블을 작성
  • 사용자 정의 XML 형식을 작성하고 파일에 읽기 (대신 예를 들어 mysettings.config에 대한 파일 이름/연락처 웹 브라우저에서 직접 액세스하지 못하도록하는 mysettings.xml)

속도를 높이려면이 값을 읽은 후 메모리에 캐시 할 수 있습니다.

+0

답변 해 주셔서 감사합니다. Marthijn - 두 가지 해결책도 내 "선택의 장"에있었습니다. 후속 질문이 있습니다. 위의 솔루션 중 가장 해킹하기 쉬운 것은 어느 것입니까? 데이터베이스의 데이터는 암호화되고 소금이 칠됩니다 (적어도 암호는 잊지 마십시오). – Adam

+1

데이터베이스가 이미 실행되고 있다면 아마도 가장 쉬운 방법 일 것입니다. XML도 그다지 어렵지 않습니다. 직렬화를 사용하면 .NET이 처리합니다. XML 파일에서도 암호를 암호화해야합니다. – Marthijn

관련 문제