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

При попытке развернуть веб-приложение в 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 он возвращает ошибку.


person DaImTo    schedule 02.09.2015    source источник


Ответы (1)


На поиск проблемы у меня ушло около 2 часов.

Проблема заключается в том, как Azure работает с сертификатами.

Изменив следующую строку

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

к этому

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

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

person DaImTo    schedule 02.09.2015
comment
Да, ты тоже спас мне жизнь! : D - person user1019042; 02.10.2016