.net core .NET核心GRPC流异常
我正在使用gRPC(双向流媒体)开发一个.NET核心聊天室。 目前,客户端是一个控制台应用程序(.NETCore3.1,服务器是5.0)。 客户机-服务器通信工作正常,突然,我开始抛出RpcExceptions。 问题是,抛出的异常具有StatusCode=OK且没有详细信息。 下面是一个代码示例(简化) 服务器流RPC.net core .NET核心GRPC流异常,.net-core,grpc-c#,.net Core,Grpc C#,我正在使用gRPC(双向流媒体)开发一个.NET核心聊天室。 目前,客户端是一个控制台应用程序(.NETCore3.1,服务器是5.0)。 客户机-服务器通信工作正常,突然,我开始抛出RpcExceptions。 问题是,抛出的异常具有StatusCode=OK且没有详细信息。 下面是一个代码示例(简化) 服务器流RPC if (!await requestStream.MoveNext()) return; //Open Connection - set use
if (!await requestStream.MoveNext())
return;
//Open Connection - set user stream to server's output
client.Stream = responseStream;
while(await requestStream.MoveNext())
{
var chatMessage = requestStream.Current;
chatMessage.Msg = $"{requestStream.Current.ClientName}: {requestStream.Current.Msg}";
foreach (var user in loggedClients)
{
user.Stream.WriteAsync(chatMessage);
}
}
客户端代码
using (var streaming = client.RPC_BroadcastChatMessage(metaData))
{
//Read stream and display on console
var readTask = Task.Run(async () =>
{
while (await streaming.ResponseStream.MoveNext())
{
Console.WriteLine($"{streaming.ResponseStream.Current.Msg}");
}
});
//Send first message (empty string) - for a welcome message
Console.WriteLine("Sending empty msg");
await streaming.RequestStream.WriteAsync(emptyMsg);
//Wait for messages from user and send to server
Console.WriteLine("Type message and press Enter to send...");
string line = Console.ReadLine();
while (!string.Equals(line, "exit", StringComparison.OrdinalIgnoreCase))
{
var stream = streaming.RequestStream;
var msg = new ChatMessage()
{
ClientId = clientId,
ClientName = $"User{userNumber}",
Msg = line,
RoomId = roomId
};
await stream.WriteAsync(msg);
line = Console.ReadLine();
}
}
例外情况
Grpc.Core.RpcException:状态(StatusCode=“OK”,Detail=“”)
客户端和服务器都在本地运行。
我试着用谷歌搜索异常,但还没有找到任何东西(不管怎么说,不是statusCode=OK相关)。
有人有线索吗?我将非常感激