2

我遇到了支付网关(Realex RealVault)的问题,Realex 和我自己都无法解决问题所在,所以我想我会把它放在这里,看看是否有人可以帮助阐明这个奇怪的问题。

每次我尝试通过链接发送到 Realex:https ://epage.payandshop.com/epage-remote-plugins.cgi我都会收到一条错误消息:

502 - Web 服务器在充当网关或代理服务器时收到无效响应。您要查找的页面有问题,无法显示。当 Web 服务器(作为网关或代理)联系上游内容服务器时,它收到了来自内容服务器的无效响应。

我正在使用以下代码发送我的请求(为了简洁起见,我在此处删除了调试代码以返回 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 或我的代码上。

我在 IIS6/Win Server 05 上运行 asp.net 3.5 代码。在 IIS 中,网站具有 SSL 和静态 IP 地址。

我知道这有点远,但如果有人有任何想法我可以尝试,将不胜感激。

谢谢你的帮助,丰富

4

1 回答 1

3

事实证明,如果您的 XML 在发送到 Realex 时格式不正确,您会看到此错误。

与通知您 XML 设置不正确的普通 Realex XML 调用不同,RealVault XML 系统不会告诉您这一点,您将看到我在问题中提到的错误消息。

希望这会帮助其他人。

于 2011-02-03T16:47:08.380 回答