﻿# 介紹好用工具：Managed Stack Explorer

微軟最近推出了一套新工具叫做 [Managed Stack Explorer](http://www.codeplex.com/MSE) ( MSE ) 可以分析任何使用 .NET 2.0 以上的應用程式執行過程的所有 Call Stack，他可以詳實的紀錄 .Net 應用程式執行的過程，包括在 .Net 執行時所有的執行緒(Threads)，最主要的功用可以用來快速偵測 .Net 程式掛掉 (Hang) 的執行緒或特定類別的特定方法(Method)。除此之外，還可以偵測 IIS6 的 Worker Process (w3wp.exe) 上所有執行中的 ASP.NET 應用程式，所以包含 ASP.NET 頁面 Hang 住的情況也能夠協助分析問題。

在[下載 MSE](https://web.archive.org/web/20100305154432/http://www.microsoft.com/downloads/details.aspx?FamilyID=80CF81F7-D710-47E3-8B95-5A6555A230C2&displaylang=en) 之後，直接執行 MSE.exe 即可開始使用：

[![Managed Stack Explorer](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/81ac87a0fdd8c8d32c52-image_thumb.png "Managed Stack Explorer")](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/2863d39ad12f8fbeed54-image_2.png)

除了可以直接即時查看電腦中所有 .NET 應用程式的執行過程外，也可以按下 Start Stack Logging 按鈕，將所有 Stack 都記錄下來，以供後續分析。

![Managed Stack Explorer -> Start Stack Logging](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/be14edf8a8a413d25295-image_5.png "Managed Stack Explorer -> Start Stack Logging")

想知道你的 ASP.NET 應用程式如何執行所有的過程，可以先點選 IIS6 的工作處理程序(w3wp.exe)，然後點選所有 Threads 就可以看到即時的運作過程，所有執行的過程都詳詳細細的，對於 ASP.NET 事件順序不甚瞭解的 ASP.NET 開發人員來說，這是個絕佳的機會讓你瞭解你的 ASP.NET 到底是如何執行 PostBack 之後的所有事件的。

[![Managed Stack Explorer for IIS6](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/2177223b98cbc168ace0-image_thumb_2.png "Managed Stack Explorer for IIS6")](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/3036d3e97f22c72d09b3-image_7.png)

可惜 [Managed Stack Explorer](http://www.codeplex.com/MSE) 目前還不支援 IIS7，無法分析 IIS7 下的 ASP.NET 應用程式，但我想不久的將來應該會提供 IIS7 的支援。

**相關連結**

-   [Managed Stack Explorer 1.0 – English](https://web.archive.org/web/20100305154432/http://www.microsoft.com/downloads/details.aspx?FamilyID=80CF81F7-D710-47E3-8B95-5A6555A230C2&displaylang=en)
-   [Managed Stack Explorer @ CodePlex](http://www.codeplex.com/MSE)
-   [How To View what ASP.NET Requests are doing at runtime on IIS 6.0](https://blogs.iis.net/webtopics/how-to-view-what-asp-net-requests-are-doing-at-runtime-on-iis-6-0/)
