IIS에서 호스팅되는 ASP.NET에서 RESTful API를 사용하여 서비스를 만들었습니다. 이 서비스에서는 Akka.NET을 사용하여 배우 시스템을 만들고 싶습니다. 다음의 예외가 발생ASP.NET의 Akka.NET 액터 시스템
var actorSystem = ActorSystem.Create("myActorSystem");
:
'System.InvalidOperationException'형식의 첫째 예외가 추가 정보를 System.Web.dll 발생 액터 시스템을 구축하면
: 현재 비동기 작업을 시작할 수 없습니다. 비동기 작업은 비동기 처리기 또는 모듈 내에서만 또는 페이지 수명주기의 특정 이벤트 중에 시작될 수 있습니다. 페이지를 실행하는 동안이 예외가 발생하면 페이지가 < % @ Page Async = "true"%>로 표시되는지 확인하십시오. 이 예외는 ASP.NET 요청 처리 내에서 일반적으로 지원되지 않는 "비동기 void"메서드를 호출하려는 시도를 나타낼 수도 있습니다. 대신 비동기 메서드는 Task를 반환해야하며 호출자는이를 기다려야합니다.
배우 시스템은 본질적으로 액터간에 비동기 메시지가 교환되는 동시 시스템입니다. 설명 된 바와 같이 here,이 액터 시스템은 IIS가 AppDomain을 사용하는 것을 견디지 못합니다. 아마도 앞서 언급 한 예외가 발생했을 것입니다.
This article은 ASP.NET에서 백그라운드 작업을 실행하는 방법을 설명합니다. 그러나 Akka.NET에서 생성 된 백그라운드 작업의 수명주기를 제어 할 수 없기 때문에이 방법을 액터 시스템에 사용하는 방법을 알 수 없습니다.
이 방법을 사용할 수 있습니까? 아니면 ASP.NET 응용 프로그램에서 배우 시스템을 사용한다는 아이디어를 포기해야합니까?
편집 : 나는 또한 implementing a REST service using Akka에 대한 Stackoverflow에 대한 질문을 보았다. Spray toolkit과 비슷한 솔루션에 대한 조언은 있지만 Akka.NET에서 일하는 것은 환영 할만한 일입니다.
배우 모델의 소리가 멋지다. 하지만 정말로 필요하니? – odinserj
나는 이것을 개념 증명으로 시험하고 있는데, 나는 절대적으로 필요하지 않다. 결론은 너무 복잡 할 수 있다는 것입니다. – Odsh