Ошибка Bad Gateway 502 при попытке отправить XML с использованием C#
У меня проблема с платежным шлюзом (Realex RealVault), и ни я, ни Realex не можем решить, в чем заключается проблема, поэтому я подумал надеть это здесь, чтобы посмотреть, сможет ли кто-нибудь помочь пролить свет на эту странную проблему.
Каждый раз, когда я пытаюсь отправить Realex по ссылке: https://epage.payandshop.com/epage-remote-plugins.cgi я получаю сообщение об ошибке:
502 - веб-сервер получил неверный ответ, выступая в качестве шлюза или прокси-сервера. Проблема со страницей, которую вы ищете, и она не может быть отображена. Когда веб-сервер (действуя в качестве шлюза или прокси-сервера) связался с вышестоящим контент-сервером, он получил неверный ответ от контент-сервера.
Я отправляю свой запрос, используя следующий код (убрал код отладки, который у меня есть здесь, чтобы вернуть ошибку 502 для краткости):
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(LinkToRealex);
req.ContentType = "text/xml";
req.Method = "POST";
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)";
req.Proxy = WebRequest.DefaultWebProxy;
req.Timeout = 15000;
byte[] bytes = Encoding.ASCII.GetBytes(XMLTosend);
req.ContentLength = bytes.Length;
Stream os = req.GetRequestStream();
os.Write(bytes, 0, bytes.Length);
os.Close();
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
if (resp == null) return null;
StreamReader sr = new StreamReader(resp.GetResponseStream());
return sr.ReadToEnd().Trim();
Я проверил журналы IIS, и там все выглядит нормально -
2011-01-06 12:44:04 W3SVC636984653 IP_Of_Server POST /RealexTest.aspx - 80 - My_IP_Address Mozilla / 5.0 + (Windows; + U; + Windows + NT + 6.0; + en-GB; + rv: 1.9.2.13) + Gecko / 20101203 + Firefox / 3.6.13 + GTB7.1 + (+.NET + CLR + 3.5.30729; +.NET4.0E) 200 0 0
Странно то, что если я пытаюсь отправить в другую платежную систему Realex (она использует другую ссылку), все в порядке (я имею в виду, что я получаю ответ от их сервера, к сожалению, я не могу использовать этот сервис для их службы RealVault).). Сначала это привело меня к убеждению, что все связано с URL-адресом, который я использовал, но поскольку я могу поместить этот URL-адрес в браузер и получить ответ, я думаю, что проблема может быть связана с IIS или моим кодом.
Я использую код asp.net 3.5 на IIS6/Win Server 05. В IIS веб-сайт имеет SSL и статический IP-адрес.
Я знаю, что это немного, но если у кого-то есть какие-то идеи, которые я мог бы попробовать, это было бы очень признательно.
Спасибо за вашу помощь, Рич
1 ответ
Оказывается, это ошибка, которую вы видите, если ваш XML не отформатирован правильно при отправке в Realex.
В отличие от обычного вызова Realex XML, который сообщает вам, что ваш XML настроен неправильно, система RealVault XML не сообщит вам об этом, и вы увидите сообщение об ошибке, о котором я упоминал в моем вопросе.
Надеюсь, это поможет кому-то еще там.