C# Grpc傳輸數(shù)據(jù)限制

今天,團隊里遇到一個問題

Grpc 報錯誤信息 :
??ExceptionMessage:RpcException Status(StatusCode=ResourceExhausted, Detail="Received message larger than max (4314472 vs. 4194304)")

網(wǎng)上找了一會,也找到一些 更改gRPC消息傳輸大小的方法,但沒有.Net的。
參考:https://blog.csdn.net/l491453302/article/details/81904067
參考上面的從gRpc源碼里找到了實現(xiàn)方式

在創(chuàng)建 Server的時候,使用ChannelOption來更改傳輸大小就可以了。

#region Consts
/// <summary>4MB(4 * 1024 * 1024) * N, 4MB是Grpc默認傳輸大小。</summary>
private const int GRPC_MAX_RECEIVE_MESSAGE_LENGTH = (4 * 1024 * 1024) * 3;
#endregion

#region Set Channel Options
var channelOptions = new List<ChannelOption>();

// add max message length option 設(shè)最大接收傳輸大小
channelOptions.Add(new ChannelOption(ChannelOptions.MaxReceiveMessageLength, GRPC_MAX_RECEIVE_MESSAGE_LENGTH));
#endregion

Server server = new Server(channelOptions)
{
    Services = { RoleService},
    Ports = { new ServerPort(Host, Prot, ServerCredentials.Insecure) }
};

另外 ChannelOptions還可以做很多的工作 ,可以參考:
??https://github.com/grpc/grpc/blob/master/src/csharp/Grpc.Core/ChannelOptions.cs

?Grpc的全局日志也可以用GrpcEnvironment.SetLogger(ILogger customLogger)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容