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

При попытке развернуть веб-приложение на 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. Надеюсь, это поможет кому-то в будущем.

licensed under cc by-sa 3.0 with attribution.