ćƒ”ćƒƒć‚»ćƒ¼ć‚ø ćƒ­ć‚°ć®č”Øē¤ŗ

ć“ć®ćƒˆćƒ”ćƒƒć‚Æć§ćÆć€ćƒ”ćƒƒć‚»ćƒ¼ć‚ø ćƒ­ć‚°ć‚’č”Øē¤ŗć™ć‚‹ę–¹ę³•ć«ć¤ć„ć¦čŖ¬ę˜Žć—ć¾ć™ć€‚

ć‚µćƒ¼ćƒ“ć‚¹ ćƒˆćƒ¬ćƒ¼ć‚¹ ćƒ“ćƒ„ćƒ¼ć‚¢ćƒ¼ć§ć®ćƒ”ćƒƒć‚»ćƒ¼ć‚ø ćƒ­ć‚°ć®č”Øē¤ŗ

ćƒ”ćƒƒć‚»ćƒ¼ć‚øćÆć€WCF ć«ć‚ˆć£ć¦å‡¦ē†ć•ć‚Œć‚‹ćØćć«å¤‰ę›ć•ć‚Œć¾ć™ć€‚ ćć®ćŸć‚ć€ćƒ­ć‚°ć«čØ˜éŒ²ć•ć‚Œć‚‹ćƒ”ćƒƒć‚»ćƒ¼ć‚øć«ćÆć€ćƒćƒƒćƒˆćƒÆćƒ¼ć‚ÆäøŠć®ć‚³ćƒ³ćƒ†ćƒ³ćƒ„ć§ćÆćŖćć€ćƒ­ć‚°ć«čØ˜éŒ²ć•ć‚ŒćŸę™‚ē‚¹ć®ćƒ”ćƒƒć‚»ćƒ¼ć‚øć®ć‚³ćƒ³ćƒ†ćƒ³ćƒ„ć®ćæćŒåę˜ ć•ć‚Œć¾ć™ć€‚

ćƒ”ćƒƒć‚»ćƒ¼ć‚ø ćƒ­ć‚°ć®å‡ŗåŠ›ć«ćÆćƒ”ćƒƒć‚»ćƒ¼ć‚øć®č»¢é€å½¢å¼ćØć®é–¢äæ‚ćŒćŖć„ćŸć‚ć€ćƒ”ćƒƒć‚»ćƒ¼ć‚ø ćƒ­ć‚°ćÆåøøć«ćƒ‡ć‚³ćƒ¼ćƒ‰ć•ć‚ŒćŸćƒ”ćƒƒć‚»ćƒ¼ć‚øć‚’å‡ŗåŠ›ć—ć¾ć™ć€‚ ćƒ”ćƒƒć‚»ćƒ¼ć‚ø ćƒ­ć‚°ć‚’ę­£ć—ćę§‹ęˆć—ć¦ć„ć‚‹å “åˆćÆć€ćƒ­ć‚°ć«čØ˜éŒ²ć•ć‚ŒćŸćƒ”ćƒƒć‚»ćƒ¼ć‚øćÆćƒ—ćƒ¬ćƒ¼ćƒ³ ćƒ†ć‚­ć‚¹ćƒˆć«ć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ ćŸćØćˆć°ć€ćƒ­ć‚°ć«čØ˜éŒ²ć•ć‚Œć‚‹ćƒ”ćƒƒć‚»ćƒ¼ć‚øć®å½¢å¼ (ćƒ—ćƒ¬ćƒ¼ćƒ³ ćƒ†ć‚­ć‚¹ćƒˆ) ćÆć€ćƒć‚¤ćƒŠćƒŖ ćƒ”ćƒƒć‚»ćƒ¼ć‚ø ć‚Øćƒ³ć‚³ćƒ¼ćƒ€ćƒ¼ć®ä½æē”Øć®å½±éŸæć‚’å—ć‘ć¾ć›ć‚“ć€‚

XmlWriterTraceListener ć®å‡ŗåŠ›ćÆć€äø€é€£ć® XML ćƒ•ćƒ©ć‚°ćƒ”ćƒ³ćƒˆć‚’å«ć‚€ćƒ•ć‚”ć‚¤ćƒ«ć§ć™ć€‚ ćƒ•ć‚”ć‚¤ćƒ«ćŒęœ‰åŠ¹ćŖ XML ćƒ•ć‚”ć‚¤ćƒ«ć§ćÆćŖć„ć“ćØć«ę³Øę„ć—ć¦ćć ć•ć„ć€‚ ćƒ”ćƒƒć‚»ćƒ¼ć‚ø 惭悰 ćƒ•ć‚”ć‚¤ćƒ«ć‚’č”Øē¤ŗć™ć‚‹ć«ćÆć€ ć‚µćƒ¼ćƒ“ć‚¹ ćƒˆćƒ¬ćƒ¼ć‚¹ ćƒ“ćƒ„ćƒ¼ć‚¢ćƒ¼ ćƒ„ćƒ¼ćƒ« (SvcTraceViewer.exe) ć‚’ä½æē”Øć™ć‚‹ć“ćØć‚’ćŠå‹§ć‚ć—ć¾ć™ć€‚ ć“ć®ćƒ„ćƒ¼ćƒ«ć®ä½æē”Øę–¹ę³•ć®č©³ē“°ć«ć¤ć„ć¦ćÆć€ć€Œ ē›øé–¢ćƒˆćƒ¬ćƒ¼ć‚¹ć®č”Øē¤ŗćØćƒˆćƒ©ćƒ–ćƒ«ć‚·ćƒ„ćƒ¼ćƒ†ć‚£ćƒ³ć‚°ć«ć‚µćƒ¼ćƒ“ć‚¹ ćƒˆćƒ¬ćƒ¼ć‚¹ ćƒ“ćƒ„ćƒ¼ć‚¢ćƒ¼ć‚’ä½æē”Øć™ć‚‹ć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

[ć‚µćƒ¼ćƒ“ć‚¹ ćƒˆćƒ¬ćƒ¼ć‚¹ ćƒ“ćƒ„ćƒ¼ć‚¢ćƒ¼] 恮 [ćƒ”ćƒƒć‚»ćƒ¼ć‚ø] ć‚æćƒ–ć« ćƒ”ćƒƒć‚»ćƒ¼ć‚ø ćŒč”Øē¤ŗć•ć‚Œć¾ć™ć€‚å‡¦ē†ć‚Øćƒ©ćƒ¼ć®åŽŸå› ć¾ćŸćÆé–¢é€£ć™ć‚‹ćƒ”ćƒƒć‚»ćƒ¼ć‚øćÆć€ć‚Øćƒ©ćƒ¼ć®é‡å¤§åŗ¦ć«åæœć˜ć¦é»„č‰² (č­¦å‘Šćƒ¬ćƒ™ćƒ«) または赤 (ć‚Øćƒ©ćƒ¼ ćƒ¬ćƒ™ćƒ«) ć§å¼·čŖæč”Øē¤ŗć•ć‚Œć¾ć™ć€‚ ćƒ”ćƒƒć‚»ćƒ¼ć‚øć‚’ćƒ€ćƒ–ćƒ«ć‚ÆćƒŖćƒƒć‚Æć™ć‚‹ćØć€å‡¦ē†č¦ę±‚ć®ć‚³ćƒ³ćƒ†ć‚­ć‚¹ćƒˆć§ćƒ”ćƒƒć‚»ćƒ¼ć‚ø ćƒˆćƒ¬ćƒ¼ć‚¹ćŒč”Øē¤ŗć•ć‚Œć¾ć™ć€‚

注

ćƒ”ćƒƒć‚»ćƒ¼ć‚øć«ćƒ˜ćƒƒćƒ€ćƒ¼ćŒćŖć„å “åˆć€ <header/> ć‚æć‚°ćÆćƒ­ć‚°ć«čØ˜éŒ²ć•ć‚Œć¾ć›ć‚“ć€‚

ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć€ćƒŖćƒ¬ćƒ¼ć€ćŠć‚ˆć³ć‚µćƒ¼ćƒ“ć‚¹ć«ć‚ˆć£ć¦ćƒ­ć‚°ć«čØ˜éŒ²ć•ć‚ŒćŸćƒ”ćƒƒć‚»ćƒ¼ć‚øć®č”Øē¤ŗ

ē’°å¢ƒć«ćÆć€ćƒ”ćƒƒć‚»ćƒ¼ć‚øć‚’ćƒŖćƒ¬ćƒ¼ć«é€äæ”ć™ć‚‹ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćŒå«ć¾ć‚Œć¦ć„ć‚‹å “åˆćŒć‚ć‚Šć€ćć®å¾Œć€ćƒ”ćƒƒć‚»ćƒ¼ć‚øćŒć‚µćƒ¼ćƒ“ć‚¹ć«č»¢é€ć•ć‚Œć¾ć™ć€‚ 3 ć¤ć®å “ę‰€ć™ć¹ć¦ć§ćƒ”ćƒƒć‚»ćƒ¼ć‚ø ćƒ­ć‚°ćŒęœ‰åŠ¹ć«ćŖć£ć¦ć„ć¦ć€3 ć¤ć®ćƒ”ćƒƒć‚»ćƒ¼ć‚ø ćƒ­ć‚°ćŒć™ć¹ć¦ ć‚µćƒ¼ćƒ“ć‚¹ ćƒˆćƒ¬ćƒ¼ć‚¹ ćƒ“ćƒ„ćƒ¼ć‚¢ćƒ¼ ćƒ„ćƒ¼ćƒ« (SvcTraceViewer.exe) ć§åŒę™‚ć«č”Øē¤ŗć•ć‚Œć‚‹ćØć€ćƒ”ćƒƒć‚»ćƒ¼ć‚ø ćƒ­ć‚°ć®äŗ¤ę›ćŒę­£ć—ćč”Øē¤ŗć•ć‚Œć¾ć›ć‚“ć€‚ ć“ć‚ŒćÆć€ćƒ”ćƒƒć‚»ćƒ¼ć‚ø ćƒ˜ćƒƒćƒ€ćƒ¼å†…ć® CorrelationId と ActivityId ćŒć€ć™ć¹ć¦ć®é€å—äæ”ćƒšć‚¢ć§äø€ę„ć§ćÆćŖć„ćŸć‚ć§ć™ć€‚

ć“ć®å•é”Œć‚’č§£ę±ŗć™ć‚‹ć«ćÆć€ę¬”ć®ć„ćšć‚Œć‹ć®ę–¹ę³•ć‚’ä½æē”Øć§ćć¾ć™ć€‚

  • ć‚µćƒ¼ćƒ“ć‚¹ ćƒˆćƒ¬ćƒ¼ć‚¹ ćƒ“ćƒ„ćƒ¼ć‚¢ćƒ¼ ćƒ„ćƒ¼ćƒ« (SvcTraceViewer.exe) では、3 ć¤ć®ćƒ”ćƒƒć‚»ćƒ¼ć‚ø ćƒ­ć‚°ć®ć†ć” 2 ć¤ć ć‘ć‚’ć„ć¤ć§ć‚‚č”Øē¤ŗć§ćć¾ć™ć€‚

  • ć‚µćƒ¼ćƒ“ć‚¹ ćƒˆćƒ¬ćƒ¼ć‚¹ ćƒ“ćƒ„ćƒ¼ć‚¢ćƒ¼ ćƒ„ćƒ¼ćƒ« (SvcTraceViewer.exe) 恧 3 ć¤ć®ćƒ­ć‚°ć‚’ć™ć¹ć¦åŒę™‚ć«č”Øē¤ŗć™ć‚‹åæ…č¦ćŒć‚ć‚‹å “åˆćÆć€ę–°ć—ć„Message ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ć‚’ä½œęˆć—ć¦ćƒŖćƒ¬ćƒ¼ ć‚µćƒ¼ćƒ“ć‚¹ć‚’å¤‰ę›“ć§ćć¾ć™ć€‚ ć“ć®ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćÆć€å—äæ”ćƒ”ćƒƒć‚»ćƒ¼ć‚øć®ęœ¬ę–‡ć®ć‚³ćƒ”ćƒ¼ć«åŠ ćˆć¦ć€ ActivityId ćƒ˜ćƒƒćƒ€ćƒ¼ćØ Action ćƒ˜ćƒƒćƒ€ćƒ¼ć‚’é™¤ćć™ć¹ć¦ć®ćƒ˜ćƒƒćƒ€ćƒ¼ć§ć‚ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ ę¬”ć®ć‚³ćƒ¼ćƒ‰ä¾‹ćÆć€ć“ć‚Œć‚’č”Œć†ę–¹ę³•ć‚’ē¤ŗć—ć¦ć„ć¾ć™ć€‚

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);  
}  

äøę­£ē¢ŗćŖćƒ”ćƒƒć‚»ćƒ¼ć‚øćƒ­ć‚°å†…å®¹ć«é–¢ć™ć‚‹ä¾‹å¤–ēš„ćŖć‚±ćƒ¼ć‚¹

ę¬”ć®ę”ä»¶ć§ćÆć€ćƒ­ć‚°ć«čØ˜éŒ²ć•ć‚Œć‚‹ćƒ”ćƒƒć‚»ćƒ¼ć‚øćÆć€ćƒćƒƒćƒˆćƒÆćƒ¼ć‚ÆäøŠć«å­˜åœØć™ć‚‹ć‚Ŗć‚Æćƒ†ćƒƒćƒˆ ć‚¹ćƒˆćƒŖćƒ¼ćƒ ć®ę­£ē¢ŗćŖč”Øē¾ć§ćÆćŖć„åÆčƒ½ę€§ćŒć‚ć‚Šć¾ć™ć€‚

  • BasicHttpBinding ć®å “åˆć€/addressing/none åå‰ē©ŗé–“å†…ć®å—äæ”ćƒ”ćƒƒć‚»ćƒ¼ć‚øć®ć‚Øćƒ³ćƒ™ćƒ­ćƒ¼ćƒ— ćƒ˜ćƒƒćƒ€ćƒ¼ćŒćƒ­ć‚°ć«čØ˜éŒ²ć•ć‚Œć¾ć™ć€‚

  • ē©ŗē™½ć«äøäø€č‡“ćŒē”Ÿć˜ć‚‹å “åˆćŒć‚ć‚Šć¾ć™ć€‚

  • å—äæ”ćƒ”ćƒƒć‚»ćƒ¼ć‚øć®å “åˆć€ē©ŗć®č¦ē“ ćÆē•°ćŖć‚‹ę–¹ę³•ć§č”Øć™ć“ćØćŒć§ćć¾ć™ć€‚ ćŸćØćˆć°ć€<tag></tag>ć§ćÆćŖćć€<tag/>

  • ę—¢ēŸ„ć® PII ćƒ­ć‚°čØ˜éŒ²ćŒć€ę—¢å®šć¾ćŸćÆ enableLoggingKnownPii="true" ćØć„ć†ę˜Žē¤ŗēš„ćŖčØ­å®šć§ć€ē„”åŠ¹ć«ćŖć£ć¦ć„ć‚‹å “åˆć€‚

  • ć‚Øćƒ³ć‚³ćƒ¼ćƒ‰ćÆ UTF-8 ćøć®å¤‰ę›ć«ęœ‰åŠ¹ć§ć™ć€‚

ć“ć”ć‚‰ć‚‚å‚ē…§ćć ć•ć„