5.7 KiB
5.7 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 | 05/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. |
IgnoreUnknownServices | false |
If true , calls to unknown services and methods don't return an UNIMPLEMENTED status, and the request passes to the next registered middleware in ASP.NET Core. |
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 |
---|---|---|
HttpHandler | New instance | The HttpMessageHandler 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 HttpMessageHandler is specified, a new HttpClientHandler instance is created for the channel with automatic disposal. |
HttpClient | null |
The HttpClient used to make gRPC calls. This setting is an alternative to HttpHandler . |
DisposeHttpClient | false |
If set to true and an HttpMessageHandler or HttpClient is specified, then either the HttpHandler or HttpClient , respectively, is 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.