错误:无法使用PayFlow Pro和ASP.NET 1.1连接到主机Uri

时间:2015-01-21 21:05:41

标签: asp.net paypal payflowpro

我们有一个支持网站,用于为客户创建自定义订单。该网站运行ASP.NET 1.1并使用PayFlow Pro API连接到PayPal。

我们还有一个面向客户的网站,它运行ASP.NET 4.0,并使用PayFlow Pro连接到PayPal。

面向客户的网站与PayPal进行了良好的沟通,但我们得到了一个"无法连接到主机Uri"来自支持网站的错误。

此外,我们设置了一个测试服务器来运行支持站点,它正在与PayPal进行通信而没有任何问题。我可以在测试站点和生产支持站点之间区分的唯一区别是,在生产运行IIS 7.5时,测试运行的是IIS 7.0。所有DLL和配置文件看起来都是相同的。

所有这一切都发生在大约一周前,就在PayPal停止使用SSL之后。我认为它与SSL切换有关,但我们在IIS中禁用了SSL,因此我不确定在哪里查看。为什么面向客户的网站会继续工作,而支持网站无法连接?他们使用相同的基础设施。

3 个答案:

答案 0 :(得分:2)

这不是您正在寻找的答案,但我们自1月12日以来一直面临同样的问题。我们采取了相同的步骤,并看到了相同的结果。有趣的是,如果我们进行IIS重置,它将重新开始工作,至少有一段时间。

我们上次发生问题时做了一个Wireshark跟踪,我们真正发现的是PayPal端正在重置连接。我们怀疑问题出在PayPal网络中,可能是由于他们最近的SSL更改。我建议您在看到错误时执行Wireshark跟踪并将其提交给PayPal。这基本上就是我们试图解决这个问题的方法。

<强>更新 经过一些测试,这似乎是最近SSL更改的问题。我们最终能够重现这个问题。我们相信我们已经发现,如果您的.Net应用程序调用仍然允许SSL 3的任何其他Web服务(例如Youtube的API),那么IIS将始终尝试使用SSL3,至少在您重置IIS之前。由于PayPal不再允许SSL3,因此与PayPal的连接失败。如果你重置IIS,那么试试PayPal它会起作用,除非你的应用程序遇到另一个SSL3端点,此时你的PayPal将再次开始失败。

就像你一样,我们有一个管理员应用程序根本不在外面。也和你一样,我们的eCom网站仍然运行良好。我们认为这是因为我们的eCom不会对任何服务进行任何SSL3调用,因此我们的eCom所在的服务器永远不会“卡在”SSL3上。但是,我们的内部应用与YouTube API互动。如果我们点击允许SSL3的YouTube API,那么我们的PayFlow交易就会出现错误。如果我们重置IIS,PayFlow将会正常工作,直到我们点击YouTube API,然后PayFlow再次中断。

我知道这有点间接,但它可能会让你有所作为。

祝你好运!

顺便说一句,我们在IIS中也使用了SSL“禁用”,但似乎无法解决问题。

答案 1 :(得分:2)

这也不是您一直在寻找的答案,但我们也遇到了同样的问题,尽管工作了好几天,并且与PayPal进行了多次沟通,但我们还是无法解决问题。

这是我们能找到的唯一符合我们问题的帖子,所以我要指点PayPal,也许如果有人提出PayPal票,他们可以张贴他们的票号,以便我们向他们证明他们承认存在更广泛的问题。我们的是150113-000138。

我们无法立即重置IIS,但我们将在一夜之间完成,以确定是否允许成功付款。我稍后会发布更新。

<强>更新

经过大量的研究,试验和错误,我们得出的结论是,这确实是一个Microsoft问题,并且IIS重置确实解决了问题,直到从服务器建立另一个连接,将连接敲回SSL。

我们的方法是将1.1站点移动到.Net 4.0 CLR中。这不是一帆风顺的,因为有几个连锁问题,但耐心和仔细的调试,我们解决了这些问题,现在有一个工作网站。

答案 2 :(得分:0)

我在Framework 4.6.1下遇到了同样的问题,我的问题是由web.config设置<httpRuntime targetFramework="4.5" />引起的。当我将targetFramework更改为4.6时,它为我修复了错误。希望这可以帮助任何有同样问题的人。