gRPC para configuração do ASP.NET CoregRPC for ASP.NET Core configuration

Configurar opções de serviçosConfigure services options

A tabela a seguir descreve as opções de configuração gRPC serviços:The following table describes options for configuring gRPC services:

OpçãoOption Valor padrãoDefault Value DescriçãoDescription
SendMaxMessageSize null O tamanho máximo da mensagem em bytes, que podem ser enviados do servidor.The maximum message size in bytes that can be sent from the server. Tentativa de enviar uma mensagem que excede os resultados de tamanho máximo de mensagem configurado em uma exceção.Attempting to send a message that exceeds the configured maximum message size results in an exception.
ReceiveMaxMessageSize 4 MB4 MB O tamanho máximo da mensagem em bytes, que podem ser recebidas pelo servidor.The maximum message size in bytes that can be received by the server. Se o servidor recebe uma mensagem que exceda esse limite, ele gerará uma exceção.If the server receives a message that exceeds this limit, it throws an exception. Aumentar esse valor permite que o servidor receber mensagens maiores, mas pode afetar negativamente o consumo de memória.Increasing this value allows the server to receive larger messages, but can negatively impact memory consumption.
EnableDetailedErrors false Se truedetalhada mensagens de exceção são retornadas aos clientes quando uma exceção é gerada em um método de serviço.If true, detailed exception messages are returned to clients when an exception is thrown in a service method. O padrão é false.The default is false. Definindo EnableDetailedErrors para true pode deixar vazar informações confidenciais.Setting EnableDetailedErrors to true can leak sensitive information.
CompressionProviders gzipgzip Uma coleção de provedores de compactação usado para compactar e descompactar mensagens.A collection of compression providers used to compress and decompress messages. Provedores de compactação personalizado podem ser criados e adicionados à coleção.Custom compression providers can be created and added to the collection. O padrão configurado o provedor oferece suporte à gzip compactação.The default configured provider supports gzip compression.
ResponseCompressionAlgorithm null O algoritmo de compactação usado para compactar mensagens enviadas do servidor.The compression algorithm used to compress messages sent from the server. O algoritmo deve corresponder a um provedor de compactação no CompressionProviders.The algorithm must match a compression provider in CompressionProviders. Para o algoritmo compactar uma resposta, o cliente deve indicar oferece suporte ao algoritmo, enviando-as grpc-codificação aceita cabeçalho.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 O nível de compactação usado para compactar mensagens enviadas do servidor.The compress level used to compress messages sent from the server.

Opções podem ser configuradas para todos os serviços, fornecendo um delegado de opções para o AddGrpc chamar em Startup.ConfigureServices:Options can be configured for all services by providing an options delegate to the AddGrpc call in Startup.ConfigureServices:

public void ConfigureServices(IServiceCollection services)
{
    services.AddGrpc(options =>
    {
        options.EnableDetailedErrors = true;
        options.ReceiveMaxMessageSize = 2 * 1024 * 1024;  // 2 megabytes
        options.SendMaxMessageSize = 5 * 1024 * 1024;     // 5 megabytes 
    });
}

Opções para um único serviço substituem as opções de globais fornecidas no AddGrpc e pode ser configurado usando AddServiceOptions<TService>:Options for a single service override the global options provided in AddGrpc and can be configured using AddServiceOptions<TService>:

public void ConfigureServices(IServiceCollection services)
{
    services.AddGrpc().AddServiceOptions<MyService>(options =>
    {
        options.ReceiveMaxMessageSize = 2 * 1024 * 1024;
        options.SendMaxMessageSize    = 5 * 1024 * 1024;
    });
}

Configurar opções do clienteConfigure client options

O código a seguir define o envio de máximo de cliente e o tamanho de mensagem de recebimento:The following code sets the client maximum send and receive message size:

static async Task Main(string[] args)
{
    var channel = new Channel("localhost:5001", ChannelCredentials.Insecure, new[]{
          new ChannelOption(ChannelOptions.MaxSendMessageLength , 2*1024*1024),
          new ChannelOption(ChannelOptions.MaxReceiveMessageLength , 5 *1024*1024)
    });
    var client = new Greeter.GreeterClient(channel);
    var reply = await client.SayHelloAsync(
                      new HelloRequest { Name = "GreeterClient" });
    Console.WriteLine("Greeting: " + reply.Message);
    await channel.ShutdownAsync();
    Console.WriteLine("Press any key to exit...");
    Console.ReadKey();
}

Recursos adicionaisAdditional resources