Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试使用C发送XML时出现错误网关502错误#_C#_Xml_Payment Gateway_Realex Payments Api - Fatal编程技术网

C# 尝试使用C发送XML时出现错误网关502错误#

C# 尝试使用C发送XML时出现错误网关502错误#,c#,xml,payment-gateway,realex-payments-api,C#,Xml,Payment Gateway,Realex Payments Api,我在支付网关(Realex RealVault)方面遇到了问题,Realex和我自己都无法找出问题所在,所以我想我应该把它放在这里,看看是否有人可以帮助解释这个奇怪的问题 每次我尝试在链接上发送到Realex时:我都会收到一个错误,上面写着: 502-Web服务器接收到无效的 作为网关或服务器时的响应 代理服务器。有一个 您正在查看的页面有问题 对于,它无法显示。什么时候 Web服务器(在充当 网关或代理)已联系 上游内容服务器,它收到 来自内容的无效响应 服务器 我使用以下代码发送请求(为了简

我在支付网关(Realex RealVault)方面遇到了问题,Realex和我自己都无法找出问题所在,所以我想我应该把它放在这里,看看是否有人可以帮助解释这个奇怪的问题

每次我尝试在链接上发送到Realex时:我都会收到一个错误,上面写着:

502-Web服务器接收到无效的 作为网关或服务器时的响应 代理服务器。有一个 您正在查看的页面有问题 对于,它无法显示。什么时候 Web服务器(在充当 网关或代理)已联系 上游内容服务器,它收到 来自内容的无效响应 服务器

我使用以下代码发送请求(为了简洁起见,我去掉了这里的调试代码以返回502错误):

我已经检查了IIS日志,那里看起来一切正常-

2011-01-06 12:44:04 W3SVC636984653 服务器POST/RealexTest.aspx的IP地址- 80-我的IP地址 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 00

奇怪的是,如果我尝试发送到Realex的其他支付系统(它使用不同的链接),一切都很好(我的意思是,我从他们的服务器收到了响应,很遗憾,我无法将此服务用于他们的RealVault服务)。起初,这让我相信一切都取决于我使用的URL,但因为我可以将此URL放入浏览器并获得响应,我认为问题可能在于IIS或我的代码

我正在IIS6/Win服务器05上运行asp.NET3.5代码。在IIS中,网站具有SSL和静态IP地址

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

谢谢你的帮助,
Rich

事实证明,如果发送到Realex时XML格式不正确,则会出现此错误

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

希望这能帮助其他人

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();