我遇到了支付网关(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 地址。
我知道这有点远,但如果有人有任何想法我可以尝试,将不胜感激。
谢谢你的帮助,丰富