502 Запрос платежного сервиса внутри лазурного "сайта"

Я получаю эту ошибку от звонка во внешнюю платежную службу. Ошибка возникает только при развертывании в Azure и отлично работает локально.

"Веб-сервер получил недопустимый ответ, выступая в качестве шлюза или прокси-сервера. Существует проблема со страницей, которую вы ищете, и она не может быть отображена. Когда веб-сервер (действуя в качестве шлюза или прокси-сервера) связался с вышестоящим контент-сервер получил неверный ответ от контент-сервера."

Класс обслуживания платежей генерируется с помощью этого wdsl

https://pal-test.adyen.com/pal/Payment.wsdl

Похоже, что ошибка возникает в методе authorize класса Payment, но я не могу получить лазурь, чтобы записывать что-нибудь полезное, даже если включены все параметры ведения журнала.

У кого-нибудь еще возникла такая проблема?

ОБНОВИТЬ

Я немного сузил проблему. Метод тестирования контроллера, приведенный ниже, приведет к сбою веб-сайта Azure с 502 и перезагрузке.

public class TestController : Controller
{      
    public string test()
    {
        try
        {
            var webClient = new WebClient();
            var stream = webClient.OpenRead("https://pal-test.adyen.com/pal/servlet/soap/Payment");
            var streamReader = new StreamReader(stream);
            return streamReader.ReadToEnd();

        }
        catch (Exception exp)
        {
            errorResult(exp);
        }
        return formattedResult(result);
    }    
}

MS, кажется, удалил часть протокола HTTP для сайта Azure. В частности, это заблокировано, кажется, SEC_I_RENEGOTIATE.

Есть ли работа вокруг? Кто-нибудь знает, будет ли этот метод работать в веб-роли?

3 ответа

Когда я перехожу на этот URL, кажется, что он хочет использовать HTTP-аутентификацию, вы получили пароль для тестовой системы, которую вы можете установить?

webClient.Credentials = new NetworkCredential("username", "password");

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

UseDefaultWebProxy=false

чтобы остановить приложение, используя настройки прокси-сервера, и вместо этого использовать любые пользовательские настройки / web.config.

Как прокомментировал JcFX выше, используемый вами URL неверен!... он должен быть

https://pal-test.adyen.com/pal/servlet/soap/Payment

то есть вы пропускаете дефис в pal-test

Вы случайно не используете файл сертификата.pfx или аналогичный?

Если да, то, как вы ссылаетесь на это, может быть проблематично в Azure, рассмотрите возможность использования Azure CertificateStore вместо того, чтобы иметь свои сертификаты в файловой системе (если вы делаете это сейчас)

для получения более подробной информации: https://msdn.microsoft.com/en-us/library/azure/gg465712.aspx

также актуально:

https://azure.microsoft.com/blog/2014/10/27/using-certificates-in-azure-websites-applications/

Надеюсь это поможет! Удачи вам, эта проблема стала для меня настоящим кошмаром!

Другие вопросы по тегам