2009-09-19 152 views
0

这是一个有点复杂的问题,有点难以解释。PHP curl发布到aspx页面导致500服务器错误

我们必须建立一个脚本来自动登录和收集基于一个asp.net网站上的信息,该脚本是在PHP中使用卷曲。 我们一直在测试脚本,它的工作时间为20-30%,这意味着脚本是完整的并且可以工作。 但其余时间失败,因为当我们发布登录信息时,服务器发生500内部服务器错误。

相同的脚本和相同的细节,有时工作,有时不工作,任何一个可以告诉我这可能是这类问题的原因是什么?

我们应该检查什么?我们已经设置了所有的cookie,视图状态,事件验证等。 还尝试在帖子字段中编码特殊字符。

在此先感谢。

-happyhardik


加法: - 我们没有访问.NET服务器 - 我们一直给相同的输入(登录信息),以我们试图 的.NET服务器每次 - 在.NET网站在浏览器每次(几乎100%)工作正常

+1

您应该一定查看服务器日志以查看500错误的原因。 – Zed 2009-09-19 05:52:26

+0

对不起,忘记了,我无法访问该服务器... :) – happyhardik 2009-09-19 06:59:01

回答

1

无论是.NET应用程序坏了,或者你的代码。

首先要做的是找出需要的fixin':

地带你的PHP代码到一些‘最基本’的考验。每次都有相同的(有效的)用户名/密码。运行20次左右...

它多久会成功?

如果你得到20-30%的成功率,那么它在.NET方面的问题。 (与该系统相同的输入产生不同的结果)。

如果你获得成功,100%或0%,它可能就在你身边的东西(在某些情况下,你发送错误的请求)

如果你有机会到.NET服务器(或人谁保持它),看看造成500错误的原因。他们的日志中肯定会有一些未处理的异常。

+0

我们无权访问.NET服务器。 我们一直在使用相同的登录细节,这意味着.Net服务器的相同输入会产生不同的结果。 因此,.NET服务器一定有问题,就像我想的那样,但是同一网站在浏览器中正常运行并且成功率达到100%,意味着我们的请求中有些问题是我感到困惑的。 – happyhardik 2009-09-19 07:04:19

0

从我的经验,如果你发送请求太快,有些网站会尽量慢下来ü用不同种类的错误..试图把UR请求之间的睡眠,看看有没有什么帮助。

0

我们已经设置了所有的cookie,viewstate,事件验证等。还尝试在post字段中编码特殊字符。

你怎么知道你的cookies和视图状态是你是从发送请求的机器是否正确?或者他们对你发送请求的服务器是否正确?

ViewState是ASP的编码表示。NET页面字段在发送到浏览器时,并且基于各种东西进行编码,包括服务器的MachineKey,页面代码的散列,以及潜在的服务器的MAC地址 - 获取其中任何一个错误对于看起来是回传的内容,服务器将抛出一个HttpException,并显示一条消息“Invalid Viewstate”。

为什么服务器可能会向您抛出异常,包括站点代码上的其他错误,直到它太忙而无法处理请求,还有其他几个原因,因为Sab suggests主动拒绝了您的请求。您最好的选择是尝试与网站所有者合作,提出双方可以合作的解决方案 - 但是我倾向于假设您正在进行某种半非法屏幕欺诈,网站所有者不会两个人开心,否则他们已经提供了一个API。

+0

嗨,我们正在发布我们从服务器获取的视图状态值,同时发回登录表单。是的,我们正在进行屏幕抓取,但它不是非法的,因为网站所有者没有问题,在他们的TOS中没有任何问题,您可以假设他们没有员工开发API,他们也不愿意解决我们在浏览器中工作时遇到的问题。 – happyhardik 2009-10-10 11:06:07

相关问题