我有一个使用 Akka.NET 远程处理的非常简单的实现。
具体来说,我有两个演员:
public class ClientQueryActor : ReceiveActor
{
public ClientQueryActor(ActorSelection stockBarcodeActor)
{
this._stockBarcodeActor = stockBarcodeActor ?? throw new ArgumentNullException("stockBarcodeActor must be provided.");
this.Receive<GetStockBarcodeByBarcodeRequest>(this.HandleStockBarcodeByBarcodeRequestReceived);
this.Receive<GetStockBarcodeByBarcodeResponse>(this.HandleStockBarcodeByBarcodeResponseReceived);
}
private void HandleStockBarcodeByBarcodeRequestReceived(GetStockBarcodeByBarcodeRequest obj)
{
this._stockBarcodeActor.Tell(obj);
}
private void HandleStockBarcodeByBarcodeResponseReceived(GetStockBarcodeByBarcodeResponse obj)
{
}
}
public class StockBarcodeQueryActor : ReceiveActor
{
public StockBarcodeQueryActor()
{
this.Receive<GetStockBarcodeByBarcodeRequest>(this.HandleStockBarcodeByBarcodeRequestReceived);
}
private void HandleStockBarcodeByBarcodeRequestReceived(GetStockBarcodeByBarcodeRequest obj)
{
this.Sender.Tell(new GetStockBarcodeByBarcodeResponse(true, null, null));
}
}
在大多数情况下,这些参与者似乎工作正常,问题出在我发送的消息中。
我的消息类大致如下所示:
public class GetStockBarcodeByBarcodeResponse
{
public GetStockBarcodeByBarcodeResponse(bool success) { }
public GetStockBarcodeByBarcodeResponse(bool success, IEnumerable<string> errors) { }
}
但是,当我尝试使用此类发送消息时,出现错误
'与远程系统akka.tcp://client@localhost:2552的关联失败;地址现在门控 5000 ms。原因是:[Akka.Remote.EndpointDisassociatedException: Disassociated'
当我删除多个构造函数时,消息发送成功。
我在参考这个问题的文档中找不到任何东西,有人可以向我解释这个限制吗?
任何人都可以提供任何建议的解决方法吗?