5.3 KiB
5.3 KiB
title | author | description | monikerRange | ms.author | ms.custom | ms.date | no-loc | uid | |||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
gRPC for .NET configuration | jamesnk | Learn how to configure gRPC for .NET apps. | >= aspnetcore-3.0 | jamesnk | mvc | 02/26/2020 |
|
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. When set to null , the message size is unlimited. |
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. When set to null , the message size is unlimited. |
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. |
Interceptors | None | A collection of interceptors that are run with each gRPC call. Interceptors are run in the order they are registered. Globally configured interceptors are run before interceptors configured for a single service. For more information about gRPC interceptors, see gRPC Interceptors vs. Middleware. |
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. When set to null , the message size is unlimited. |
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. When set to null , the message size is unlimited. |
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.