2014-07-17 2 views
-1

저는 ASP.NET Web Form 응용 프로그램을 작성하고 있습니다.자주 액세스하는 파일을 ASP.NET 응용 프로그램에 배치 할 위치는 어디입니까?

요청이 내 aspx 페이지에 도착할 때마다 개체를 사용하여 일부 논리를 수행합니다. 이 객체는 미리 만들어진 파일에서 직렬화가 해제됩니다.

요청이 들어올 때마다이 개체를 deserialize하고 싶지 않으므로 aspx 페이지에 많은 요청이있을 것입니다. 기억하기 때문에 ASP.NET은 다른 스레드와 다른 요청을 처리합니다. 파일을 읽는 한 스레드가 다른 스레드가이 파일을 읽지 못하게합니다. 그래서 성능을 상하게합니다. (하지만이 점에 대해 확실하지 않습니다. 잘못된 경우 수정하십시오.)

파일은 매주 또는 격주로 업데이트됩니다. 그래서 일단 파일이 업데이트되면 해당 객체를 다시 역 직렬화해야합니다.

내 질문은 :

  • 어디 파일에서 객체를 직렬화하는 코드를 삽입해야합니까?
  • 파일 변경을 모니터링하는 방법은 무엇입니까?

나의 현재 계획은 다음과 같습니다

  • 을 위해 Application_Start() 이벤트에서 파일에서 객체를 직렬화. 그리고이 객체를 캐시에 저장하십시오.
  • FileSystemWatcher를 사용하여 파일이 포함 된 폴더를 모니터링하고 파일이 수정되면 개체를 업데이트합니다.

이 디자인이 정상입니까? 더 이상 합리적인 설계가 있습니까?

감사합니다.

답변

0

App_Data에 파일을 저장하십시오.

FileSystemWatcher는 괜찮지 만 Windows 서비스로 실행하는 것이 좋습니다. 캐시를 새로 고칠 수있는 전용 페이지가있을 수 있습니다 (예 : www.webpage.com/refreshcache.aspx). 매일 밤 캐시를 새로 고칠 스케줄러를 설정할 수도 있습니다.

관련 문제