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