google-cloud-platform - 如何在 Google Cloud 请求中设置最大接收消息长度?
问题描述
我有以下 Google Cloud 通话:
var builder = new TextToSpeechClientBuilder();
builder.JsonCredentials = @"...";
var client = builder.Build();
var data = client.SynthesizeSpeech(new SynthesisInput { Ssml = text },
new VoiceSelectionParams { LanguageCode = culture.TwoLetterISOLanguageName },
new AudioConfig { AudioEncoding = AudioEncoding.Linear16, SampleRateHertz = 8000 }).AudioContent;
它抛出以下异常:
Grpc.Core.RpcException: 'Status(StatusCode="ResourceExhausted", Detail="Received message larger than max (4675411 vs. 4194304)")'
请求小于2000字节,所以看起来响应太大了。服务器想要发送响应,但客户端无法接受。如何提高这个限制?
解决方案
为了克服错误Received message larger than max (4675411 vs. 4194304)
,您需要将入站消息大小设置为更大的值。您可以在实例化构建器时执行此操作,与创建通道时类似。下面是你如何做到这一点:
textToSpeechClient = TextToSpeechClient.create(TextToSpeechSettings
.newBuilder()
.setTransportChannelProvider(
TextToSpeechSettings.defaultGrpcTransportProviderBuilder()
.setMaxInboundMessageSize(8790801)
.build())
.build());
这是该setMaxInboundMessageSize
方法的文档。
更新:据我了解,您想使用 C#,因为我找不到设置入站消息大小的方法,例如在 Java 中(上图)。我在 Google 中打开了一个公共问题。虽然,我没有它的预计到达时间,但您可以在此处跟踪。
推荐阅读
- c# - 请求被中止:使用 X509Certificate2 时无法创建 SSL/TLS 安全通道
- regex - 我如何匹配不包括这些的引号之间的内容?
- sql-server - SQL 首先检查列名而不是条件,并给我一个错误无效的列名。如何解决这个问题?
- c# - 模型更新后未设置属性
- networking - Kubernetes 集群中是否可以有隔离的网络?
- javascript - html中的图像隐藏在标题的导航栏下
- jquery - jquery如何获取image和div的交集数据
- paypal - 我可以在 PayPal Gateway 中使用 Braintree SDK(特别是我需要 Apple Pay)吗?
- html - 如何使我的导航栏菜单按钮工作?
- android - 如何在 Android 中制作日历网格