3

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

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

使用此 wdsl 生成支付服务类

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

似乎错误发生在 Payment 类的授权方法中,但即使所有日志记录选项都打开,我也无法天蓝色地记录任何有用的东西。

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

更新

我把问题缩小了一点。下面控制器的测试方法会导致一个天蓝色的网站崩溃并出现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 被阻止了。

有什么解决办法吗?有谁知道这种方法是否适用于网络角色?

4

3 回答 3

0

可能是正在使用的代理服务器有问题...尝试以下

UseDefaultWebProxy=false

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

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

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

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

于 2012-08-24T11:12:08.930 回答
0

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

webClient.Credentials = new NetworkCredential("username", "password");
于 2012-09-02T05:14:04.227 回答
0

您是否有机会使用 .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/

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

于 2015-08-03T15:12:17.130 回答