我們有一個非常奇怪的問題,我們的應用程序之一是通過使用.net遠程持續查詢服務器,並且應用程序每隔100秒停止查詢一段時間,然後重新開始操作。問題出在客戶端而不在服務器上,因爲應用程序實際上在同一時間查詢多個服務器,並在同一時間停止從所有服務器接收數據。.net遠程停止每隔100秒
回答
我從來沒有見過這樣的行爲,但不幸的是這是一個足夠模糊的場景,我想你會很難在這個板子上找到遇到問題的人。這可能與您的應用程序有關。
我認爲你可以做一些調查來幫助你縮小問題的範圍。
- 確定它是否實際上是停滯的客戶端或服務器。如果您在確定此問題時遇到問題,請嘗試安裝數據包篩選器並監控流量以查看誰發送了最後一次數據。您可能無法讀取二進制數據,但至少您會了解誰落後。
- 一旦確定是客戶端還是服務器造成延遲,請嘗試調試到應用程序並在出現掛起的位置獲取斷點。這應該給你足夠的細節來幫助追蹤問題。或者至少問一個關於SO的更明確的問題。
100秒是一個贈送號碼,因爲它是.Net中webrequest的默認超時時間。
我以前見過PSI(Microsoft Project中的Project Server接口)沒有重寫超時,所以應用了100秒的默認值,並且會終止任何與之通話的時間長度。
您是否有權訪問所有代碼,並確定您已在適用的情況下設置了超時,以便任何默認值都不會在您不知情的情況下應用?
它看起來像一些默認的,但我在談論遠程請求不是一個WebRequest的,並沒有發現任何這樣的defaul在遠程 – MichaelT 2008-11-17 15:10:38
應用程序如何編碼以實現持續查詢?它是否處於連續循環?或與Thread.Sleep循環?或者它是否在定時器上?,
首先確定您的系統是否在您的代碼中執行此「觸發」時,如果您期望它或者如果是,並且遠程服務器沒有響應,那麼這將是非常有用的。 ..所以,...
如果您不能在可以調試它的開發環境中重現此問題,那麼,如果可以,我建議您將代碼添加到此循環以寫出日誌文件(或一些其他的持久性機制)每次它「應該」檢查它使用的任何條件來決定是否查詢遠程服務器,然後在問題再次出現時檢查那些日誌...
如果你可以做同樣的事情在你的遠程服務器中,記錄什麼時候服務器收到遠程請求,這將有所幫助...
...哦,是的,只是一個想法,(我不知道你是如何編碼這...),但如果您正在客戶端中使用單獨的線程發出遠程請求,並且該通道正在註冊,並且在該單獨的線程上取消註冊,請確保您解除衝突請求,導致無法在同一臺計算機上兩次註冊相同的端口與此同時... (雖然這應該可能已經在你的客戶提出了一個異常,如果這是問題)
- 1. 遠程gdb停止在每個事件
- 2. 懸停代碼每隔1秒
- 3. EnableRaisingEvents每100毫秒?
- 4. 每隔x秒調用一次Javascript函數並在y秒後停止?
- 5. 遠程停止NodeJS
- 6. 每100毫秒暫停Exoplayer,500毫秒後重新開始
- 7. 龍捲風應用程序定期停止幾秒鐘,100%CPU
- 8. 停止秒錶
- 9. 停止5秒
- 10. 每100秒垃圾回收
- 11. Mule 3.3.0每隔100毫秒請求回覆分批日誌
- 12. 每隔X秒刷新JPanel(帶線程)
- 13. c#每隔100毫秒在單獨的線程中輪詢外部設備
- 14. 停止選取框每10秒鐘5秒
- 15. 每隔5秒追加
- 16. 插座每隔幾秒鐘
- 17. 每隔幾秒鐘,C#
- 18. 更新HttpResponse每隔幾秒
- 19. ScheduledExecutorService運行每隔幾秒
- 20. Grails應用程序每隔幾小時停止響應
- 21. 添加/刪除類每15秒使用jQuery並停止懸停。
- 22. 如何使用C#.net每隔幾秒鐘/分鐘ping域?
- 23. 如何在等待其他方法啓動和停止每3秒停止一個java程序中的進程
- 24. 如何在x秒後停止重新加載間隔?
- 25. 如何在java腳本中停止15秒的時間間隔?
- 26. 連接超時10秒過期,停止 - 斷開連接永遠
- 27. 爲什麼這些基於pm2的節點進程每隔一兩秒就停止並重新啓動?
- 28. Android的AltBeacon庫停止查找信號每隔1秒時應用程序在銀河s7的背景
- 29. 幾秒鐘後停止requestAnimationFrame
- 30. MPMoviePlayerController四秒後停止
是的,我知道的是含糊不清,但這是一個老問題(3年),這裏沒有任何機構能夠弄清楚,所以我有興趣看看有人看到了它。問題出在客戶端而不在服務器上 – MichaelT 2008-11-17 15:13:17