502在azure’网站’内请求付款服务

我通过拨打外部支付服务收到此错误。 只有在部署到azure并且在本地完美运行时才会出现该错误。

“Web服务器在充当网关或代理服务器时收到无效响应。您正在查找的页面存在问题,无法显示。当Web服务器(充当网关或代理)联系上游时内容服务器,它收到内容服务器的无效响应。“

使用此wdsl生成支付服务类

https://pal-test.adyen.com/pal/Payment.wsdl

似乎错误发生在Payment类的authorize方法中,但即使所有日志记录选项都打开,我也无法记录任何有用的内容。

有没有其他人有这个问题?

UPDATE

我把问题缩小了一点。 下面控制器的测试方法将导致azure网站崩溃502并重新启动。

public class TestController : Controller { public string test() { try { var webClient = new WebClient(); var stream = webClient.OpenRead("https://pal-test.adyen.com/pal/servlet/soap/Payment"); var streamReader = new StreamReader(stream); return streamReader.ReadToEnd(); } catch (Exception exp) { errorResult(exp); } return formattedResult(result); } } 

MS似乎已经删除了azure网站的一些HTTP协议。 特别是这被阻止似乎是SEC_I_RENEGOTIATE。

有什么工作吗? 有谁知道这种方法是否适用于Web角色?

使用代理服务器可能存在问题…请尝试以下操作

 UseDefaultWebProxy=false 

使用计算机专用代理设置停止您的应用程序,而是使用任何用户定义的/ web.config设置。

正如JcFX上面评论的那样,您使用的URL不正确!…应该是

 https://pal-test.adyen.com/pal/servlet/soap/Payment 

即你在pal-test中缺少连字符

当我转到该URL时,它似乎想要使用HTTP身份validation,您是否获得了可以设置的测试系统的密码?

 webClient.Credentials = new NetworkCredential("username", "password"); 

您是否有机会使用.pfx证书文件或类似文件?

如果是这样,您在Azure中引用它的方式可能会有问题,请考虑使用Azure CertificateStore而不是在文件系统上拥有您的证书(如果您现在正在执行此操作)

有关详细信息: https : //msdn.microsoft.com/en-us/library/azure/gg465712.aspx

也相关:

https://azure.microsoft.com/blog/2014/10/27/using-certificates-in-azure-websites-applications/

希望这可以帮助! 祝你好运,这个问题对我来说是一场真正的噩梦!