2008-10-15 13 views
0

我已經對應用程序的後端進行了一些性能改進,並向GUI的最終用戶展示了好處,我們一直使用Trace.axd頁面時序。 (前端是.Net 1.1,後端是Java,通過Web服務連接)。如何在ASP.NET中增加信息跟蹤

但是,這些時間顯示舊的和新的後端沒有區別。

通過在後端放置一個斷點並在那裏持續一個請求30秒,我可以從Trace.axd看到POST正在花費3ms,並且GET取4s。我錯過了大約26s ...

POST是性能改進的地方,但Trace頁面上的計時似乎只包括髮送請求所需的時間,而不是返回所需的時間。

有沒有辦法來增加跟蹤信息的粒度以包含整個請求?還是有另一種方法來進行我需要的測量?

回答

0

我不確定你是如何在.NET端進行請求的,但我會假設有一個HttpWebRequest涉及某處。我希望HttpWebRequest.GetResponse()在收到響應頭後立即返回。這樣,您可以開始處理大量響應的開始,其餘的仍在下載。如果您的跟蹤消息緊接在調用GetResponse之前和之後,那麼您將看不到後端的整個執行時間。您可以在關閉響應後立即添加跟蹤消息嗎?

+0

這似乎不是一個HttpWebRequest問題。它看起來更像是一個ASPX問題。 – 2008-10-15 12:30:50

+0

是的,沒有明確的HttpWebRequest - 只是微軟WS魔術 – fiddlesticks 2008-10-15 12:40:32

0

跟蹤輸出不顯示您在brakpoint中度過的所有時間是異常的。您是否檢查了總時間欄以查看它是否與您在請求中度過的時間相匹配?不要忘記,其中一列僅顯示自上一條跟蹤語句以來所花費的時間。

如果您希望跟蹤輸出中有更細化的數據,您可以添加自己的數據。 TraceContext類有兩種方法:警告和寫入,將行添加到輸出中(警告將其添加爲紅色)。可以從每個頁面或控件訪問TraceContext:只需使用this.Trace.Warn()或this.Trace.Write()(我認爲它也可以通過HttpContext類訪問)。

1

好吧,我最終得到了我想要的東西。問題是IIS跟蹤不包括POST返回的時間。

我發現我可以使用Trace.Write()將自定義條目添加到跟蹤日誌,甚至使用Trace.Write(string category,string message)添加一個類別。

在我完成POST後執行的代碼中添加對Trace.Write()的調用給了我一個更好的數字。

儘管如此,它並不理想,因爲它是自定義的,我認爲它儘可能接近POST週期的末尾。