Tôi có ứng dụng SignalR với ứng dụng .NET. Khi một lỗi xảy ra tại máy chủ tôi cần để có thể xử lý này ở phía khách hàng. Tuy nhiên, đây là một chút khó khăn như Signalr luôn luôn kết thúc tốt đẹp tất cả các ngoại lệ vào một "InvalidOperationException" với một thông điệp như "UnknownUserException đã được ném ...", thay vì thực sự cho tôi UnknownUserException
.SignalR - Tuyên bố ngoại lệ cho khách hàng
Tôi không chắc chắn cách thực hiện việc này?
Một ví dụ mà không làm việc ngay bây giờ (kể từ InvalidOperationException
được ném thay vì ngoại trừ actualy):
try
{
await this.hubProxy.Invoke<Guid>("Authenticate", nww object[] { userName, languageCode, credentials });
}
catch(UnknownUserException ex)
{
Toast.Dislay("Invalid UserName.");
}
catch(ConnectionError ex)
{
Toast.Dislay("Connection Error.");
}
Có cách nào tôi có thể móc vào việc xử lý ngoại lệ và chỉ truyền bá ngoại lệ mà tôi biết một cách an toàn và bao bọc tất cả các trường hợp khác? – ronag
Loại, bạn có thể tạo mô-đun kênh trung tâm: http://www.asp.net/signalr/overview/hubs-api/hubs-api-guide-server#hubpipeline và sau đó liên kết với những thứ như BuildIncoming để thực thi các hàm trung tâm và bắt các ngoại lệ được ném ra và quyết định có propogate chúng –
Tôi đã thêm vào, 'RouteTable.Routes.MapHubs (new HubConfiguration {EnableDetailedErrors = true, EnableCrossDomain = true});' trong 'Application_Start' và tái chế nhóm ứng dụng của tôi. Vẫn nhận được 'InvalidOperationException' thay vì ngoại lệ thực tế. Bất cứ điều gì tôi có thể đã bỏ lỡ để làm gì? – ronag