2013-08-24 43 views
2

得到一個網站仍然在開發中使用ServiceStack的開放ID實施登錄用戶。這段時間一直工作正常,突然今天早上谷歌的OpenID登錄開始失敗,Facebook仍然認證正常。不引發錯誤,只是重定向回默認的網址與此附加到它:ServiceStack的谷歌OpenID突然沒有登錄

#f=Unknown 

在我的本地它完美的作品,谷歌和FB Login好兩者只有在生產它失敗。我已經嘗試了不少:

  1. 重新驗證了我的asp.net bin文件夾中的每個文件與本地和生產相比,沒有區別。
  2. 將生產域名重新路由到本地主機(在hosts文件中),希望能夠逐步完成會話的創建。沒有運氣,仍然完美地簽署。
  3. 通過遠程桌面連接到服務器,並嘗試作爲本地主機登錄失敗。 (是的,WTH?)。

有沒有一種方法可以獲得身份驗證正在進行的日誌?還是有人有什麼可能是問題的想法?

附註:我最近更改了域名的dns設置,並將它移到了這臺新服務器上,但是這大概在3-4天前完成,直到今天早上它一直在正常工作。還注意到我的IP上的反向DNS查找解析爲另一個域,現在正在調查此問題。

UPDATE

這個問題飼養今天上午的醜陋的頭一次。我不知道是什麼原因導致它,但我懷疑windows自動時間同步是以某種方式拋棄東西。我正在關閉它,並且要留意事情,看它是否會返回。此外,這個問題似乎讓我的SSL設置陷入混亂,我必須手動重置IIS的SSL綁定才能正常工作,甚至WebDeply也會受到影響。很奇怪。

UPDATE 2 問題今天再次發生。我現在懷疑它與IIS的Web部署功能有某種關係,因爲它在我發佈我的網站後立即發生。現在也意識到我不需要重新啓動,一個簡單的iisreset似乎可以解決它。將繼續監測。

FINAL UPDATE 我終於找到了罪魁禍首。時間。我的虛擬服務器獲得時間非常快,每隔幾天它就會領先於大多數其他服務器,因此身份驗證將失敗。限制似乎在3-5分鐘左右,在此範圍內,身份驗證可以正常工作。更重要的是,它失敗了。爲了解決它,只需啓用時間同步,它不應該重新出現。

回答

2

您可以檢查您的生產服務器時鐘。 OpenID請求與互聯網時間同步以驗證請求。如果時鐘關閉或關閉一段時間,只需重新啓動即可解決問題。

+0

經過多年來我一直在編碼,我仍然困惑於簡單的重新啓動如何修復事情。感謝您的建議,重新啓動整理出來。 –