2009-09-19 155 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

相關問題