我正在編寫一個控件,它會警告用戶他們的會話即將超時。我可以在更新面板中輕鬆跟蹤標準回發和發佈包,但我正在努力查看如何跟蹤對任何/所有Web服務的呼叫。跟蹤來自javascript的任何asp.net web服務調用
是否有這樣的機制,或者我將不得不嘗試重寫Sys.Net.WebRequest調用代碼?
我正在編寫一個控件,它會警告用戶他們的會話即將超時。我可以在更新面板中輕鬆跟蹤標準回發和發佈包,但我正在努力查看如何跟蹤對任何/所有Web服務的呼叫。跟蹤來自javascript的任何asp.net web服務調用
是否有這樣的機制,或者我將不得不嘗試重寫Sys.Net.WebRequest調用代碼?
在類似的要求中,我們寫了一個HttpModule。此時,您可以很好地控制您的請求並跟蹤您的web服務回傳。關於如何編寫自己的httpmodule的更多信息請見這裏http://msdn.microsoft.com/en-us/library/aa719858(VS.71).aspx
替換Sys.Net.WebRequest代碼沒有任何問題 - 在跟蹤調用之後保留對之前實現的引用並調用它。這樣的事情應該這樣做:
(function() {
var originalWebRequest = Sys.Net.WebRequest;
Sys.Net.WebRequest = function() {
// track call
//...
// call original WebRequest
return originalWebRequest.apply(this, arguments);
}
})();
我試過這種方法,我發現的是函數(如get_headers)不再是對象的一部分。這是因爲申請還需要申請一些額外的東西? – ilivewithian 2010-02-18 14:21:41