微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.NET CORE GRPC 流异常

如何解决.NET CORE GRPC 流异常

我正在使用 gRPC(BI 定向流)开发 .NET Core 聊天室。 客户端,目前,是一个控制台应用程序(.net core 3.1,服务器是 5.0)。 客户端 - 服务器通信工作正常,突然间,我开始抛出 RpcExceptions。 问题是,抛出的异常有 StatusCode=OK 并且没有详细信息。 这是一个代码示例(简化)

服务器流 RPC

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: Status(StatusCode="OK",Detail="")

客户端和服务器都在本地运行。 我试过谷歌搜索异常,但还没有找到任何东西(不管怎样,与 statusCode=OK 无关)。 有人有任何线索吗?我将不胜感激。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。