Skip to content

Add Missing WCF Event Templates#2390

Open
brianrob wants to merge 1 commit intomicrosoft:mainfrom
brianrob:brianrob/missing-wcf-event-metadata
Open

Add Missing WCF Event Templates#2390
brianrob wants to merge 1 commit intomicrosoft:mainfrom
brianrob:brianrob/missing-wcf-event-metadata

Conversation

@brianrob
Copy link
Member

@brianrob brianrob commented Mar 20, 2026

Summary

The ApplicationServerTraceEventParser had event ID constants defined for 16 WCF infrastructure events (57394–57410) but was missing the corresponding event handler properties and template entries in EnumerateTemplates(). This caused these events to display as EventID(57394) etc. instead of their proper names like HandledException and ThrowingEtwException.

Additionally, ApplicationServerTraceEventParser was not registered as a standard parser in TraceLog, so PerfView's ETLX conversion/read path never instantiated it.

Changes

ApplicationServerTraceEventParser.cs

Added 16 missing event handler properties and template registrations for:

  • HandledException (57394), ShipAssertExceptionMessage (57395), ThrowingException (57396), UnhandledException (57397)
  • TraceCodeEventLog* variants (57399–57403)
  • HandledExceptionWarning/Error/Verbose (57404–57406)
  • ThrowingExceptionVerbose (57407), EtwUnhandledException (57408)
  • ThrowingEtwExceptionVerbose (57409), ThrowingEtwException (57410)

Template types and field definitions were matched to the WCF ETW manifest (Microsoft-Windows-Application Server-Applications provider).

TraceLog.cs

Registered ApplicationServerTraceEventParser in RegisterStandardParsers() so PerfView resolves these event names when reading ETLX files.

Testing

  • All TraceEvent tests pass (2179 net8.0 + 2196 net462, 0 failures)
  • Verified end-to-end via TraceLog.OpenOrConvert (PerfView's code path) — events 57394 and 57410 now resolve as HandledException and ThrowingEtwException with proper payload fields

…aceEventParser

The ApplicationServerTraceEventParser had event ID constants defined for WCF
infrastructure events (57394-57410) but no corresponding event handler properties
or template entries in EnumerateTemplates(). This caused these events to display
as 'EventID(57394)' etc. instead of their proper names like 'HandledException'
and 'ThrowingEtwException'.

Added 16 missing event handler properties and template registrations for:
- HandledException (57394), ShipAssertExceptionMessage (57395),
  ThrowingException (57396), UnhandledException (57397)
- TraceCodeEventLog* variants (57399-57403)
- HandledExceptionWarning/Error/Verbose (57404-57406)
- ThrowingExceptionVerbose (57407), EtwUnhandledException (57408)
- ThrowingEtwExceptionVerbose (57409), ThrowingEtwException (57410)

Template types and field definitions were matched to the WCF ETW manifest
(Microsoft-Windows-Application Server-Applications provider).

Also registered ApplicationServerTraceEventParser as a standard parser in
TraceLog so that PerfView's ETLX conversion picks up these templates.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@brianrob brianrob changed the title Add missing WCF infrastructure event templates Add Missing WCF Event Templates Mar 20, 2026
@brianrob brianrob marked this pull request as ready for review March 20, 2026 19:36
@brianrob brianrob requested a review from a team as a code owner March 20, 2026 19:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant