4.6 KiB
4.6 KiB
title | author | description | monikerRange | ms.author | ms.custom | ms.date | uid |
---|---|---|---|---|---|---|---|
gRPC for .NET configuration | jamesnk | Learn how to configure gRPC for .NET apps. | >= aspnetcore-3.0 | jamesnk | mvc | 09/05/2019 | grpc/configuration |
gRPC for .NET configuration
Configure services options
gRPC services are configured with AddGrpc
in Startup.cs. The following table describes options for configuring gRPC services:
Option | Default Value | Description |
---|---|---|
MaxSendMessageSize |
null |
The maximum message size in bytes that can be sent from the server. Attempting to send a message that exceeds the configured maximum message size results in an exception. |
MaxReceiveMessageSize |
4 MB | The maximum message size in bytes that can be received by the server. If the server receives a message that exceeds this limit, it throws an exception. Increasing this value allows the server to receive larger messages, but can negatively impact memory consumption. |
EnableDetailedErrors |
false |
If true , detailed exception messages are returned to clients when an exception is thrown in a service method. The default is false . Setting EnableDetailedErrors to true can leak sensitive information. |
CompressionProviders |
gzip | A collection of compression providers used to compress and decompress messages. Custom compression providers can be created and added to the collection. The default configured providers support gzip compression. |
ResponseCompressionAlgorithm |
null |
The compression algorithm used to compress messages sent from the server. The algorithm must match a compression provider in CompressionProviders . For the algorithm to compress a response, the client must indicate it supports the algorithm by sending it in the grpc-accept-encoding header. |
ResponseCompressionLevel |
null |
The compress level used to compress messages sent from the server. |
Options can be configured for all services by providing an options delegate to the AddGrpc
call in Startup.ConfigureServices
:
Options for a single service override the global options provided in AddGrpc
and can be configured using AddServiceOptions<TService>
:
Configure client options
gRPC client configuration is set on GrpcChannelOptions
. The following table describes options for configuring gRPC channels:
Option | Default Value | Description |
---|---|---|
HttpClient |
New instance | The HttpClient used to make gRPC calls. A client can be set to configure a custom HttpClientHandler , or add additional handlers to the HTTP pipeline for gRPC calls. If no HttpClient is specified, then a new HttpClient instance is created for the channel. It will automatically be disposed. |
DisposeHttpClient |
false |
If true , and an HttpClient is specified, then the HttpClient instance will be disposed when the GrpcChannel is disposed. |
LoggerFactory |
null |
The LoggerFactory used by the client to log information about gRPC calls. A LoggerFactory instance can be resolved from dependency injection or created using LoggerFactory.Create . For examples of configuring logging, see xref:grpc/diagnostics#grpc-client-logging. |
MaxSendMessageSize |
null |
The maximum message size in bytes that can be sent from the client. Attempting to send a message that exceeds the configured maximum message size results in an exception. |
MaxReceiveMessageSize |
4 MB | The maximum message size in bytes that can be received by the client. If the client receives a message that exceeds this limit, it throws an exception. Increasing this value allows the client to receive larger messages, but can negatively impact memory consumption. |
Credentials |
null |
A ChannelCredentials instance. Credentials are used to add authentication metadata to gRPC calls. |
CompressionProviders |
gzip | A collection of compression providers used to compress and decompress messages. Custom compression providers can be created and added to the collection. The default configured providers support gzip compression. |
The following code:
- Sets the maximum send and receive message size on the channel.
- Creates a client.