ASP.NET 페이지에서 호스팅되는 Silverlight 응용 프로그램이 있습니다. 응용 프로그램을 처음 시작하고 백그라운드 프로세스 (다양한 주기적 검사)를 시작할 때 일부 처리를 수행해야합니다.어플 리케이션 _ 왜 Global.asax에서 여러 번 발사할까요?
Global.asax Application_Start 이벤트가이 작업을 수행하기에 좋은 장소라고 생각했지만 Application_Start가 여러 번 실행되는 것을 예상하지 못했습니다. 내가 읽은 바로는 마지막 사용자가 내 응용 프로그램에서 로그 아웃하면 세션이 사라지고 IIS가 내 응용 프로그램을 언로드한다는 것입니다. 다음에 요청되면 다시로드되고 Application_Start가 다시 실행됩니다. 이는 실제로 원하는 것이 아닙니다.
이것은 예상되는 동작입니까? 응용 프로그램을로드 된 상태로 유지할 수있는 방법이 있습니까?
둘째, 나는 주기적으로 백그라운드 프로세스를 실행하고 싶습니다. 어쩌면 Windows 서비스가 더 나은 곳이 될 수도 있지만 응용 프로그램의 정적 클래스에서 타이머를 실행하는 것이 편리합니다. 활성 사용자가 없더라도 이러한 실행을 유지할 수있는 방법이 있습니까?
이벤트를 시작하는 데 필요한 시간 인 경우 어쩌면 우리는 그런 식으로 제안 할 수 있습니다. –
분명히 말하자면, 응용 프로그램에 대한 최초 요청시에만 한 번만 실행하고 서버 자체가 다시 시작될 때까지는 다시 실행하지 말아야합니다. –
시작할 때 실행되는 명령 줄 프로젝트를 만들 수 있습니까? 웹 페이지와 분리하십시오. –