ServiceStack 不同的 ServiceClients 有相同的错误处理程序

ServiceStack different ServiceClients have same error handlers

在我的代码中有 2 个 ServiceClients

var client = new ServerEventsClient(baseUrl, "home")
{
    OnConnect = OnConnect,
    OnCommand = HandleIncomingCommand,
    OnMessage = HandleIncomingMessage,
    OnException = OnException,
    OnHeartbeat = OnHeartbeat
};

var jsonClient = new JsonServiceClient(baseUrl);
string publicKeyXml = jsonClient.Get(new GetPublicKey());
var cryptoClient = jsonClient.GetEncryptedClient(publicKeyXml);

注意第一个中的 OnException 处理程序。令人困惑的部分是,当 cyptoClient 抛出错误时,它会被第一个客户端的 OnException 处理程序处理。这是它应该如何工作吗?我没有为第二个客户端设置任何异常处理程序,因为没有这样做的选项。

这不是一个有效的结论,ServerEventsClient.OnExceptionReceived() 仅在 4 个位置被调用:

您可能认为它们是相关的,因为您的 ServiceClient 请求可能导致服务器事件流连接中出现异常,但是如果 ServiceClient 请求出现异常,它将从调用站点抛出,即:

try
{
    client.Get(request);
} 
catch(WebServiceException ex) { ... }