Ошибка Bad Gateway 502 при попытке отправить XML с помощью C # - PullRequest
2 голосов
/ 06 января 2011

У меня проблема с платежным шлюзом (Realex RealVault), и ни я, ни Realex не можем решить, в чем проблема, поэтому я решил поставить это здесь, чтобы посмотреть, сможет ли кто-нибудь помочь пролить свет на это странный вопрос.

Каждый раз, когда я пытаюсь отправить в Realex по ссылке: https://epage.payandshop.com/epage-remote-plugins.cgi я получаю сообщение об ошибке:

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

Я отправляю свой запрос, используя следующий код (убрал код отладки, который у меня здесь, чтобы вернуть ошибку 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 + ан-ГБ + с.в.: 1.9.2.13) +. Геккон / 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 Ответ

3 голосов
/ 03 февраля 2011

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

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

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

...