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 mesaj 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üğü 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. Bir işleme hatasına neden olan veya bu hatayla ilişkili 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ıklama, işleme isteği bağlamında ileti izleme kaydını açar.

Uyarı

Mesajda üst bilgi yoksa, <header/> etiketi günlüğe kaydedilmez.

İstemci, Aktarıcı ve Hizmet Tarafından Günlüğe Kaydedilen İletileri Görüntüleme

Ortamanızda, bir istemciden geçiş görevi gören bir noktaya ve ardından hizmete iletilen bir mesaj gönderen bir istemci bulunabilir. İleti günlüğü üç konumda da etkinleştirildiğinde ve üç ileti günlüğü de Hizmet İzleme Görüntüleyici Aracı'nda (SvcTraceViewer.exe) aynı anda 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.

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ı Mesaj Kaydetme İçeriği için Özel Durumlar

Aşağıdaki koşullar altında, kayıt altına alınan iletiler, hat üzerinde bulunan sekizli akışın tam temsilcisi 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></etiket> yerine <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 bakınız