2012-02-16 3 views
0

내 프로젝트에 뉴스 레터 기능을 추가하여 모든 가입 된 사용자에게 생성 된 메일을 보내고 싶습니다. 대용량을 전혀 기대하지는 않지만 메일을 대량으로 보낼 수있는 프로젝트에서 다시 사용하는 것이 좋습니다. 그러나, 나는 이것을 위해 사용할 수있는 전략에 대해 혼란 스럽다. this question에 대한 답변을 인용 : 내가 보내 asp.net 웹 페이지를 권하고 싶지 않다뉴스 레터 생성 및 보내기

, 별도의 배경 스레드를 시작 할 경우에도 마찬가지입니다. 나는 당신이 중간에 당신의 프로세스를 재활용하는 서버의 위험을 감수한다고 생각할 것이다. 전자 메일을 보내려면 실제로는 별도의 서비스 또는 응용 프로그램을 작성해야합니다.

이것은 WCF 서비스가 이동하는 방법을 의미하지만 OData 또는 RIA 서비스의 중요 여부는 무엇입니까? MSDN 문서는 각 유형의 용도에 대해 약간 혼란 스럽습니다. RIA를 사용하는 예로 Silverlight를 예로 들었지만 여전히 독자적으로 사용할 수 있다고합니다.

또한 서비스를이 방법으로 사용하더라도 프로세스를 재활용하는 것에 대한 위의 인용문은 컨트롤러가 대기하는 동안 프로세스를 재활용하므로 MVC 컨트롤러에서 호출 할 수 없다는 것을 의미합니다. 어쨌든 서비스를 위해서? 이상적으로는 MVC를 사용하여 메일을 만들고이를 서비스에 전달하고 메일을 보내고 MVC 자체 내에서 결과를 처리하고 싶습니다.

마지막 문제는 서비스로 양식 인증을 구현할 수 있는지 여부입니다. 다른 사람들이 무작위로 뉴스 레터를 보낼 수 없도록 서비스에 대한 액세스를 제어 할 수 있어야합니다.

WCF와 MVC를 함께 사용하면 이러한 목표를 달성 할 수 있습니까?

답변

2

비슷한 일을 할 때 모든 것을 보장하기를 바랍니다. 방금 컨트롤러의 메시지 내용을 설정 한 다음 메시지와받는 사람 목록 (또는이 경우받는 사람을 정의하는 필터)을 데이터베이스에 씁니다.

그런 다음 ASP (내 경우에는 Windows 서비스) 외부에서 실행되는 완전히 별도의 프로세스가 있으며, 주기적으로 데이터베이스에서 전송 요청을 확인하고 전송 한 다음 보낸 것으로 플래그합니다.

분명히 MVC 컨트롤러가 모든 인증 문제를 처리합니다. 전송 요청이 데이터베이스에 기록되면 완전히 승인 된 것으로 간주됩니다.

WCF를 사용하여 ASP와 Windows 서비스 간의 통신을 통해 유사한 작업을 수행 할 수 있지만 지나치게 복잡하다고 생각합니다. 요청이 결국 처리되는 것을 보장하는 것이 더 어렵습니다. 어쨌든 100 % 확실한 데이터베이스 레코드가 필요합니다. 따라서 레코드가 메시지 일 수도 있습니다. 일반적으로 전자 메일 보내기의 실시간 트리거링이 필요하지 않습니다.

+0

답변 James에게 감사드립니다. 따라서 일을 훨씬 쉽게 할 수 있습니다. –