Grpc.Core.RpcException StatusCode Недоступно Канал находится в состоянии TRANSIENT_FAILURE - PullRequest
0 голосов
/ 07 февраля 2019

Я использую Google Vision API для получения соответствующих ярлыков для изображения.

 var client = ImageAnnotatorClient.Create();
 var image = Image.FromFile(@"C:\Users\Scorpio\Desktop\th.jpg");
 var response = client.DetectLabels(image); // error
 foreach (var annotation in response)
 {
     if (annotation.Description != null)
           Console.WriteLine(annotation.Description);
 }

enter image description here

Есть идеи, как решить эту проблему?Я пытался использовать очень распространенные изображения, такие как флаги стран, но все равно это выдает ошибку.

Ответы [ 2 ]

0 голосов
/ 18 марта 2019
 Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", @"C:\Users\#YOURUSER#\source\repos\PdfToImage\credentials.json");
0 голосов
/ 08 февраля 2019

Я просто скопировал этот сценарий, используя ваш код, и он успешно запустился.Исходя из этого, возможно, что эта проблема была связана с временной и временной ошибкой со стороны службы, как указано в сообщении об ошибке;тем не менее, я рекомендую вам убедиться, что вы добавляете правильные библиотеки.

Ниже приведен код, который я использовал для тестирования, включающего процесс аутентификации:

using Google.Cloud.Vision.V1;
using System;
using Grpc.Auth;
using Google.Apis.Auth.OAuth2;

namespace VisionDemo
{
    class Program
    {   
        static void Main(string[] args)
        {
            //Authenticate to the service by using Service Account
            var credential = GoogleCredential.FromFile(@"<CREDENTIALS_JSON_FILE_PATH>").CreateScoped(ImageAnnotatorClient.DefaultScopes);
            var channel = new Grpc.Core.Channel(ImageAnnotatorClient.DefaultEndpoint.ToString(), credential.ToChannelCredentials());
            // Instantiates a client
            var client = ImageAnnotatorClient.Create(channel);
            var image = Image.FromFile(@"<IMAGE_PATH>");
            var response = client.DetectLabels(image); // error
            foreach (var annotation in response)
            {
                if (annotation.Description != null)
                    Console.WriteLine(annotation.Description);
            }

        }
    }
}

В случае, если вы продолжаетеВ этой проблеме вы могли бы взглянуть на инструмент Issue Tracker , который можно использовать для поднятия Vision API , чтобы проверить этот сценарий с командой технической поддержки Google и проверить, работает ли это поведениеможет быть сгенерирован с проблемой в вашем проекте.

...