grpc: все звонки отменяются без намерения - PullRequest
1 голос
/ 20 сентября 2019

Я пишу 2 приложения WPF .Net Framework и готов к использованию различные proto, клиенты и реализации.

Проблема: приложение 1 отправляет первый запрос (процедура запуска для приложения 2).Приложение 2 получает, обрабатывает, создает объект для возврата, возвращает его.Приложение 3 выдает Grpc.Core.RpcException: {"Status (StatusCode = Cancelled, Detail = \" Canceled \ ")"}

Я получил желаемый результат, не установил таймаут и не дал отменыТокен даже будет вызываться.

Мой канал настроен следующим образом, с 127.0.0.1 и 50052 в качестве IP и порта._channel = новый канал ($ "{MyIP}: {MyPort}, ChannelCredentials.Insecure);

Мой сервер настраивается путем его обновления, итеративного добавления служб и добавления порта в виде:

_server.Ports.Add(new ServerPort({MyIP}, {MyPort}, 
    ServerCredentials.Insecure));

прототипы были скомпилированы с использованием методов автоматической компиляции grpc с `syntax =" proto3 ". Я добавлю фрагмент ниже.

service Hardware
{
    // A Simple RPC.
    //
    // Request for the hardware to initialise.
    //
    // Returns the state in an enum.
    rpc Initialise(StateChangeRequest) returns (State) {}
}

// Requests the change, with context coming from the command being sent.
message StateChangeRequest
{

}

// Returns the state enum, showing the different states of the hardware.
message State
{
    enum Status {
        UNKNOWN = 0;
        INITIALISED = 1;
        INITFAILED = 2;

    }

    Status status = 1;
}

Вызов выполняется следующим образом:

public async Task<bool> Initialise()
{
    try
    {
        // Initialise hardware via client.
        if (await _client.InitialiseAsync() != State.Types.Status.Initialised)
        {
            return false;
        }
    }
    catch (Exception ex)
    {
        _logger.Error(ex);
        return false;
    }

    return true;
}

Может помочь любая дополнительная информация, которую я могу придумать: Target Framework - это .NET Framework 4.6.2. Используемая версия Google Protobuf - 3.9.1.0. Используемая версия Grpc Core - 2.0.0.0.Используемая версия Grpc Core Api - 2.0.0.0. Эти версии идентичны во всех используемых проектах.

Любая помощь очень ценится.

...