502 在 Azure 'website' 中请求付款服务



我在调用外部支付服务时收到此错误。该错误仅在部署到azure时发生,并且在本地运行良好。

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

支付服务类是用这个wdsl 生成的

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

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

其他人有这个问题吗?

更新

我把问题缩小了一点。以下控制器的测试方法将导致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);
    }    
}

微软似乎已经删除了一些azure网站的HTTP协议。具体来说,它被阻止了,看起来像是SEC_I_RENEGOTIATE。

周围有工作吗?有人知道这种方法是否适用于网络角色吗?

可能是使用中的代理服务器有问题。。。尝试以下

UseDefaultWebProxy=false

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

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

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

即您在pal测试中缺少连字符

当我转到那个url时,它似乎想使用HTTP身份验证,你得到了可以设置的测试系统的密码吗?

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/

希望这能有所帮助!祝你好运,这个问题对我来说简直是一场噩梦!

最新更新