2012-01-28 41 views
1

我正在開發登錄頁面上還支持Facebook的登錄按鈕出現異常行爲

<fb:login-button>. 

Facebook登錄我已經建立了在Facebook上兩個應用程序的應用程序:

  1. 一個本地主機(網站網址http://localhost/,沒有應用程序域)
  2. 一個測試服務器(Web站點URL http://dev.domain.com/,沒有應用 域)

當我在我自己的計算機上開發時,單擊登錄按鈕按預期工作,並登錄到我的應用程序。 當我把我的應用程序到服務器(改變appid和祕密使用第二個應用程序),並單擊登錄按鈕的Facebook登錄對話框打開,當我輸入電子郵件和密碼它關閉,但我的applciation不會登錄我。什麼是更多if我檢查服務器,我看到處理這個Web請求的進程不斷增加內存大小(每秒3MB),並且佔用50%或更多的CPU時間。如果這個過程沒有立即停止,服務器變得無響應,因爲它使用的內存是最大可能的,並且CPU時間是100%。 這會在Facebook登錄對話框關閉後立即發生。

在我的應用程序中,我使用codeplex庫facebook C#SDK。

如果任何人有任何關於我可能做錯的信息,我會非常感謝答案。

回答

1

發現問題......它不是關於Facebook,而是.Net框架。看起來,從動態對象傳遞的某些版本的框架支持參數不支持。 所以,當我從

dynamic fbuser = GetUserData(); 
DoSomethingWithID(fbuser.id); 

改變代碼

dynamic fbuser = GetUserData(); 
object fbid = fbuser.id; 
DoSomethingWithID(fbid); 

就開始工作了......真的不明白爲什麼有時甚至在服務器上,將工作(遠程調試它總是工作到DLL的後被取代,但...不真的在乎:))

感謝您的所有答覆。

0

聽起來像一個無限的重定向循環。

檢查您的瀏覽器使用Firefox的Firebug或Chrome,IE或Safari的內置開發者工具。我認爲您的應用設置中可能存在設置錯誤,並且通過查看流量可能會導致我們成爲罪魁禍首。

+0

Firebug顯示在對話框關閉後,它向我的登錄頁面發送一個POST請求,其中包含Cookie信息(ASP.NET_SessionId = 21c0udax0ped2ziz0g5epyin; fbsr_131653813577722 ...),並在大約1分鐘後中止。中止服務器進程繼續以50%+ CPU時間運行並保持增加的內存後。是否有任何其他信息可以從螢火蟲給你? – 2012-01-28 16:35:33

+0

如果只有一個呼叫到您的網絡服務器,請將一個斷點放入並開始逐步查看問題所在。另一個好方法是下載Facebook C#SDK的源代碼並將項目添加到您的解決方案中,並引用該項目而不是編譯後的dll,以便您可以進入SDK。我必須爲此處理一個問題。祝你好運! – DMCS 2012-01-28 16:57:03

+0

當我開始遠程調試(因爲在我的電腦上工作,問題只發生在服務器上),它開始工作,並繼續工作。當我更新服務器的新版本的我的應用程序(這再次在我的電腦上工作)發生同樣的錯誤。更令人沮喪的是,相同的代碼用於檢查應用程序中另一個頁面上的標識(FacebookWebContext.Current.IsAuthenticated()),它在那裏工作(甚至在服務器上)。 – 2012-01-28 17:02:10