這個問題是關於ASP.NET強加給我的限制(如腳本超時等)。asp.net無限循環 - 可以這樣做嗎?
我有一個服務在ASP.NET下運行,我想創建一個對應的監視服務。
主要服務的數據位於數據庫中。
我在考慮讓監控服務在一個循環內以1秒的間隔查詢數據庫,這個循環由遠程客戶端完成的http請求發出。
現在,這個監控的實際服務將通過客戶端http請求來完成,該請求會使腳本循環(用C#編寫),當檢測到新數據時,它會將該數據聚合到該循環請求輸出緩衝區中,發送它,並退出循環,從而完成請求。
客戶將不得不發出新的請求,以保持獲得更新。
這實際上就像TCP(就像Windows IOCP一樣);您請求數據服務並等待它。當它到達時,你發出另一個請求。
我的實際問題是:你以前做過嗎?它是如何去的?我受限於IIS/ASP.NET框架強加的一些(可配置)限制嗎? 我在這種情況下有什麼限制,或者,有什麼更好的選擇,而不是太複雜的東西?
請注意,我一次不會期望很多此類監控請求,可能只有幾十個。
然而,這意味着10個這樣的併發監視請求將保持10個線程繁忙,問題是;它可以傷害IIS /性能嗎? IIS將如何處理10個繁忙線程?它會發出更多?有什麼限制?這只是我能想到的極限的一個例子。
感謝您的答覆哈桑。所以你建議爲監控服務提供一個服務? – Poni 2010-12-07 14:19:51
它可能是一項服務,它可能是一個預定的控制檯應用程序 - 這是一個實施問題,但基本上 - 是的,我建議創建一個監視服務並讓ASP.NET頁面只顯示監視報告到最後用戶。這樣你就可以得到一個更清潔的架構,並且你不會受限於少量的用戶,查看監控日誌(因爲查看將是非常便宜的操作) – Hassan 2010-12-07 14:40:52