Aracılığıyla paylaş


İleti Günlüklerini Görüntüleme

Bu konuda, ileti günlüklerini nasıl görüntüleyebileceğiniz açıklanmaktadır.

Hizmet İzleme Görüntüleyicisi'nde İleti Günlüklerini Görüntüleme

WCF tarafından işlenirken bir ileti dönüştürülür. Bu nedenle, günlüğe kaydedilen bir ileti, iletinin yalnızca günlüğe kaydedildiği noktadaki içeriğini yansıtır, kablodaki içeriği yansıtmaz.

İleti günlüğü çıkışının iletinin aktarım biçimiyle hiçbir ilişkisi olmadığından, ileti günlüğü her zaman kodu çözülen iletinin çıkışını alır. İleti günlüğünü düzgün yapılandırdıysanız, günlüğe kaydedilen tüm ileti düz metin biçiminde olmalıdır. Örneğin, günlüğe kaydedilen iletilerin biçimi (düz metin), ikili ileti kodlayıcının kullanımından etkilenmez.

XmlWriterTraceListener'ın çıkışı, XML parçaları dizisi içeren bir dosyadır. Dosyanın geçerli bir XML dosyası olmadığını unutmayın. İleti günlük dosyalarını görüntülemek için Hizmet İzleme Görüntüleyicisi Aracı'nı (SvcTraceViewer.exe) kullanmanız önerilir. Bu aracın nasıl kullanılacağı hakkında daha fazla bilgi için bkz . Bağıntılı İzlemeleri Görüntülemek ve Sorun Giderme için Hizmet İzleme Görüntüleyicisi'ni Kullanma.

Hizmet İzleme Görüntüleyicisi'nde iletiler İleti sekmesinde listelenir. İşleme hatasına neden olan veya bu hatayla ilgili iletiler, hatanın önem derecesine bağlı olarak sarı (uyarı düzeyi) veya kırmızı (hata düzeyi) olarak vurgulanır. İletiye çift tıklanması, işleme isteği bağlamında ileti izlemesini getirir.

Not

İletide üst bilgi yoksa, <header/> hiçbir etiket günlüğe kaydedilmez.

İstemci, Geçiş ve Hizmet Tarafından Günlüğe Kaydedilen İletileri Görüntüleme

Ortamınız, iletinin daha sonra hizmete iletildiği bir geçişe ileti gönderen bir istemci içerebilir. İleti günlüğü üç konumda da etkinleştirildiğinde ve üç ileti günlüğü de Aynı Anda Hizmet İzleme Görüntüleyici Aracı'nda (SvcTraceViewer.exe) görüntülendiğinde, ileti günlüğü değişimleri yanlış işlenir. Bunun nedeni CorrelationId , İleti üst bilgisindeki ve ActivityId öğesinin her gönderme-alma çifti için benzersiz olmamasıdır.

Bu sorunu çözmek için aşağıdaki yöntemlerden birini kullanabilirsiniz.

  • Herhangi bir anda Hizmet İzleme GörüntüleyiciSi Aracı'ndaki (SvcTraceViewer.exe) üç ileti günlüğünden yalnızca ikisini görüntüleyin.

  • Hizmet İzleme Görüntüleyicisi Aracı'ndaki (SvcTraceViewer.exe) üç günlüğü de aynı anda görüntülemeniz gerekiyorsa, yeni Message bir örnek oluşturarak geçiş hizmetini değiştirebilirsiniz. Bu örnek, gelen iletinin gövdesinin bir kopyası ve ve Action üst bilgileri dışındaki ActivityId tüm üst bilgiler olmalıdır. Aşağıdaki örnek kod, bunun nasıl yapılacağını gösterir.

Message outgoingMessage = Message.CreateMessage(incomingMessage.Version, incomingMessage.Headers.Action, incomingMessage.GetReaderAtBodyContents());  
  
for (int i = 0; i < incomingMessage.Headers.Count; i++)  
{  
   if (incomingMessage.Headers[i].Name.Equals("ActivityId", StringComparison.InvariantCultureIgnoreCase) ||  
incomingMessage.Headers[i].Name.Equals("Action", StringComparison.InvariantCultureIgnoreCase))  
   {  
      continue;  
    }  
    outgoingMessage.Headers.CopyHeaderFrom(incomingMessage, i);  
}  

Hatalı İleti Günlüğü İçeriği için Olağanüstü Durumlar

Aşağıdaki koşullar altında, günlüğe kaydedilen iletiler, kabloda bulunan sekizli akışın tam gösterimi olmayabilir.

  • TemelHttpBinding için, /addressing/none ad alanında gelen iletiler için zarf üst bilgileri günlüğe kaydedilir.

  • Boşluklar uyumsuz olabilir.

  • Gelen iletiler için boş öğeler farklı şekilde gösterilebilir. Örneğin, <etiket><>/ yerine <etiket/etiket>

  • Bilinen PII günlüğü varsayılan olarak veya enableLoggingKnownPii="true" açık ayarıyla devre dışı bırakıldığında.

  • Kodlama UTF-8'e dönüştürmek için etkinleştirilir.

Ayrıca bkz.