Уеб сървърът получи невалиден отговор, докато действаше като шлюз или прокси сървър

Когато се опитвате да разположите уеб приложение в 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
Да, ти спаси и моя живот! :Д - person user1019042; 02.10.2016