2013-06-03 8 views
2

예를 들어, Global.asax에서 예외 처리 코드를 사용하여 SmtpClient의 SendAsync() 메서드를 호출하여 오류를 알립니다 .ASP.Net 페이지에 Async = "true"를 사용할 때 발생할 수있는 문제가 있습니다.

특정 페이지의 비동기 속성이 "거짓"인 경우 문자를받지 못합니다. 그래서, 그것을 수정하려면 ASP.NET WebForms 응용 프로그램의 모든 페이지에서 Async = "true"로 설정해야합니까? 여기에 문제가 생길 수 있습니까?

Async = "true"는 내 응용 프로그램에서 보내는 전자 메일에만 필요합니다. 내가 어떤 도움을 감사하게 될 것입니다

...

답변

0

에서 전체 게시물을 참조하시기 바랍니다; The Dangers of Implementing Recurring Background Tasks In ASP.NET

내가이 블로그 게시물에 초점을 맞출 것 중 하나는 세 가지 주요 위험이 있습니다.

1- 요청과 관련되지 않은 스레드에서 처리되지 않은 예외가 있으면 프로세스가 중단됩니다. 이는 Application_Error 메소드를 통해 핸들러 을 설정해도 발생합니다. 내가 왜 블로그 게시물에 후속 조치를 취해야 하는지를 설명 하겠지만, 다루기는 쉽다.

2 웹 팜에서 사이트를 실행하는 경우 동일한 시간에 에서 동일한 작업을 실행하려고하는 앱의 여러 인스턴스로 끝날 수 있습니다. 첫 번째 항목 인 보다 처리하기가 조금 더 어려워 보이지만 여전히 어렵지는 않습니다. 일반적인 접근 방법 중 하나는 데이터베이스와 같은 모든 서버에서 공통적으로 사용되는 리소스 을 사용하여 작업을 조정하는 메커니즘 인 입니다.

3 사이트가 실행되는 AppDomain은 여러 가지 이유로 다운 될 수 있으며 백그라운드 작업을 중단 할 수 있습니다. 코드 실행 중에 데이터가 손상되면 데이터가 손상 될 수 있습니다.