2013-05-08 81 views
0

因此,我的網絡系統中出現了一種奇怪的情況。Ajax Call + ASP.NET + .NET Remoting

我有一個Windows服務的實現,啓動一個.Net Remoting服務器,並保持等待各種客戶端的調用。

另一方面,我有一個ASP.Net Web窗體應用程序,它可以使用.Net Remoting結構調用此服務中的某些方法。

在一個頁面中,我有一個按鈕,這個Button調用一個Ajax調用,並且這個Ajax調用,在Asp.Net Web窗體應用程序中執行一個異步方法。

一切工作正常。

但是,在完整的Ajax調用中,我有第二個異步調用。完成第一次Ajax調用後,第二次執行正常,但不立即,僅在3或4秒後執行。

它只發生在IIS中,在Visual Studio(localhost)中發佈網站時,不會發生這種情況。

我可以將我的服務(服務器)配置爲TCP或ICP,以二進制模式發送數據......對於任何配置,問題總是發生。

回答

0

幾個月來,我在很多論壇和網站上發現了同樣的問題,最後我得到了答案。

事實上,問題不在於AJAX調用或多個AJAX調用。問題發生是因爲.NET Remoting的線程池和IIS線程池之間存在問題。

本網站在執行AJAX調用時會在服務器端進行一些計算。這些calc(用.NET Remoting執行)在txt文件中生成一些日誌。

要生成這些日誌,Windows需要將正常線程池e用於IIS限制。 IIS等待5秒鐘以返回Windows線程池。因此,在這種情況下,存在兩個線程池,一個用於Windows,另一個用於IIS。

刪除日誌生成,我可以在正確的時間執行該過程。有些人發現在ADO服務器端執行SQL查詢的同樣的問題。