在我們的專案裡面會串接著許多資源 , 例如 Restful API 或者
Soap WebService , 像是 WCF 或者附檔名為 .asmx 的 WebService ,
在 Application Insight 裡面 , Restful API 能夠被清楚辨識 ,
但是 Soap WebService 卻不行 , 我們試著建立 Soap WebService
並且包含兩個 Contract 如下圖 :
當使用 WcfTestClient 在呼叫這兩個 Contract 時 , 實際上 ,
出現在 Application Insight 的會只有顯示 WebService1.asmx 的 Log ,
出現這樣的結果時 , 我們將會看不到實際上是哪個 Contract 被呼叫 ,
而這樣也會導致在 Performance 功能中 , 將無法正確衡量每個
Contract 所花費的時間以及每個 Contract 被呼叫的次數 , 如下圖 :
因此我們需要建立一個機制來提供識別 ,
我們可以參考前一篇文章 Environment Identify 的
做法建立一個索引 , 主要作法是當我們在執行 Soap WebService 時 ,
我們將擷取其 Request Header 裡面的 SOAPAction 屬性 , 其代表了我們所呼叫的 Contract ,
並把它塞到我們建立的索引
接著我們將能再點入該 Request 之後看到有新的索引 SoapAction ,
其 Value 就是 Contract Name 了