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/
Надеюсь это поможет! Удачи вам, эта проблема стала для меня настоящим кошмаром!