Веб-сервер получил недопустимый ответ, действуя в качестве шлюза или прокси-сервера

при попытке развернуть веб-приложение в Azure с помощью учетной записи службы в клиентской библиотеке Google .net возвращается со следующей ошибкой

502 - веб-сервер получил недопустимый ответ, действуя в качестве шлюз или прокси-сервер.

пример кода:

var certificate = new X509Certificate2(KeyFilePath, "notasecret", X509KeyStorageFlags.Exportable);

ServiceAccountCredential credential = new ServiceAccountCredential(
    new ServiceAccountCredential.Initializer(serviceAccountEmail) {
                        Scopes =  new string[] { AnalyticsService.Scope.Analytics };
                    }.FromCertificate(certificate));

// Create the service.
AnalyticsService service = new AnalyticsService(new BaseClientService.Initializer()
                {
                    HttpClientInitializer = credential,
                    ApplicationName = "Analytics API Sample",
                });

приведенный выше код работает при запуске в разработку. Однако при развертывании в AZURE он возвращает ошибку.

1 ответов


мне потребовалось около 2 часов, чтобы отследить проблему

проблема связана с тем, как Azure работает с сертификатами.

путем изменения следующей строки

var certificate = new X509Certificate2(KeyFilePath, "notasecret", X509KeyStorageFlags.Exportable);

этой

var certificate = new X509Certificate2(KeyFilePath, "notasecret", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable);

веб-приложение и учетная запись службы теперь работают в Azure. Я надеюсь, это поможет кому-то в будущем.