Ошибка 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-адрес.

Я знаю, что это немного далеко, но если у кого-то есть идеи, которые я мог бы попробовать, это было бы очень признательно.

Спасибо за помощь, Рич


person Richard Reddy    schedule 06.01.2011    source источник


Ответы (1)


Оказывается, эта ошибка — это то, что вы видите, если ваш XML неправильно отформатирован при отправке в Realex.

В отличие от обычного вызова Realex XML, который информирует вас о том, что ваш XML настроен неправильно, XML-система RealVault не сообщит вам об этом, и вы увидите сообщение об ошибке, о котором я упоминал в своем вопросе.

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

person Richard Reddy    schedule 03.02.2011