gRPC中RpcException的Metadata字符限制及合规文档查询
gRPC Metadata字符限制及序列化问题
问题场景与代码实现
在gRPC服务端,我通过以下扩展方法抛出RpcException:
public static class GrpcExceptionExtension { public static RpcException BuildRpcException(this Exception e) { var metadata = new Metadata { { "message", e.Message }, }; return new RpcException(new Status(StatusCode.Internal, "Internal Exception"), metadata); } }
遇到的问题
- 当Metadata条目包含特定字符(如
\r\n这类换行符)时,RpcException无法正常完成序列化 - 原本返回的
StatusCode.Internal会被替换为Status(StatusCode="Unknown", Detail="Bad gRPC response. HTTP status code: 500") - 排查后确认,移除消息中的换行符即可恢复正常,引发问题的原始消息翻译为:
无法将值 NULL 插入列 'ColID',表 'XXX.dbo.TTT';列不允许空值。INSERT 语句失败。
该语句已终止。
疑问
是否有官方文档明确规定gRPC Metadata允许传输的字符规则?
内容的提问来源于stack exchange,提问作者gipinani
相关产品推荐
相关产品推荐

