2014-04-22 2 views
0

Exchange 서버에서 다른 서버로 메일을 마이그레이션하는 asp.net MVC 어플리케이션이 있습니다. 이제 마이그레이션 프로세스를 계속 실행하고 싶지 않습니다. 사용자가 브라우저 프로세스를 닫을 때 열려있는 브라우저를 유지한다는 것은 브라우저 프로세스가 뒤에서 실행 중이어야한다는 것을 의미하며 브라우저 사용자가 열면 마이그레이션 진행 상황을 확인할 수 있습니다. 사람이 asp.net MVC 4 C#을 사용하거나 해당 정보의 적은 양을 감안할 때 다른 서비스웹 브라우저를 닫은 후에도 Exchange 마이그레이션 코드를 계속 실행하고 싶습니다.

답변

0

를 사용하여이 작업을 달성하는 방법이 나를 도와 드릴까요, 난 단지 간결하게 응답 할 수 있습니다.

  • 사용자가 마이그레이션을 트리거하면 (즉, 요청을 MVC로 보냄) 다른 스레드에서 마이그레이션을 트리거해야합니다.
  • 다른 스레드가 전역 액세스 가능한 변수에 액세스 할 수 있는지 확인하십시오 (예 : bool MigrationIsRunning. 마이그레이션을 시작하면 true으로 설정되고 완료되면 false으로 돌아갑니다 (어느 쪽이든 성공 여부에 따라).
  • 사용자가 마이그레이션 페이지로 돌아 오면 컨트롤러 메서드가 MigrationIsRunning (이전 단계의 변수) 값을 확인하고 올바른 피드백을 사용자에게 반환하십시오.

참고 : bool 대신 자세한 정보를 표시하는 사용자 정의 클래스를 사용할 수 있습니다. 마이그레이션이 언제 실행되는지 사용자가 알아야 할 것인지 잘 모르겠습니다.

참고 2 : 마이그레이션하는 동안 전체 응용 프로그램에 액세스 할 수없는 경우 3 단계를 Masterpage 또는 Global.asax에 배치하는 것이 더 좋으므로 단일 응용 프로그램 대신 전체 웹 응용 프로그램을 사용할 수 있습니다 페이지.

+0

고맙습니다. migrationis 실행 방법이 효과적이라고 생각합니다. 그렇습니다. 사용자가 페이지를 다시 방문했을 때 진행률이 얼마나되는지에 대한 자세한 정보가 필요합니다. 사용자 액세스시 Jquery 진행률 표시 방법을 알려주세요. 그 페이지를 다시 – user3559462

+0

그건 완전히 다른 질문이야. jQuery 진행률 표시 줄은 그다지 문제가되지 않습니다. 마이그레이션 스레드와 일반적인 웹 요청간에 스레딩 및 객체 공유를 조사하는 것이 좋습니다. 필요한 데이터가 있는지 확인하십시오. 그런 다음 해당 데이터를 시각화 할 수 있습니다. – Flater

관련 문제