Ошибка 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 не сообщит вам об этом, и вы увидите сообщение об ошибке, о котором я упоминал в моем вопросе.

Надеюсь, это поможет кому-то еще там.

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