Prerequisites for the Nodinite WCF Diagnostics Tracing Feature
This page describes the prerequisites for installing, configuring and running the Nodinite WCF Diagnostics Tracing Feature.
The Logging solutions involves 2 parts:
- WCF Diagnostics (involves changes on server with WCF Applications)
- Pickup Log Events Service Logging Agent (must be installed and have access to folders)
Log Events and Payload
You must have at least one existing IIS/WCF based solution that you must eventually configure to emit JSON formatted Log Events to a file folder for pickup by the Nodinite Pickup Log Events Service Logging Agent.
| Verified | Topic |
|---|---|
| Software Requirements | |
| What Windows User Rights does the WCF Diagnostics Tracing Feature require? | |
| What firewall settings does the Nodinite WCF Diagnostics Tracing Feature require? |
Software Requirements
You need the following components:
- Your WCF Application
- Windows Server
- .NET Framework
- Pickup Service
Supported Versions
The Nodinite WCF Diagnostics Tracing Feature can be used on the following list of Windows Server/ IIS versions
- Windows Server 2008 R2 (IIS 7.5)
- Windows Server 2012 (IIS 8.0)
- Windows Server 2012 R2 (IIS 8.5)
- Windows Server 2016 R2 (IIS 10)
All Windows Server editions are supported:
- Enterprise
- Standard
- Developer (which is Enterprise)
- Trial (which is Enterprise)
.NET Framework
- .NET Framework 4.5 or later
Pickup Service
The Pickup Log Events Service Logging Agent must be installed and configured to pickup the log files from configured WCF Solutions. The Windows Service may be installed on any other Windows Server, as long as the emitted log files can be consumed (logged).
See Prerequisites for Pickup Service for additional details
Log API
The LogAPI must be installed and accessible from the Pickup Log Events Service Logging Agent.
See Prerequisites for Log API for additional details
What Windows User Rights does the WCF Diagnostics Tracing Feature require?
The AppPool On the Windows Server hosting the WCF Application runs with some Windows Identity. The WCF Diagnostics Logging feature requires the AppPool account to have the right to write files to configured destination folder (local or remote).
You must also have the rights to change .config files on the server hosting your WCF Applications.
We at Nodinite strongly recommends that you log to a local folder or a highly available file share to avoid any problems within your WCF Application. Local access is more likely to be available and performs faster writes which means less overhead within your solution
What firewall settings does the Nodinite WCF Diagnostics Tracing Feature require?
The WCF Diagnostics Tracing Feature writes trace files to a destination folder; the Pickup Service reads that folder and posts the Log Events to the Log API. Firewall requirements depend on where the folder and the Pickup Service are. The diagram shows every host involved, with the folder on a remote file share; each arrow starts at the side that opens the connection.
Network diagram: the WCF Application writes trace files to the share, the Pickup Service reads them and posts Log Events to the Log API. Dashed arrows are optional hops.
Note
No firewall changes are required between the WCF Application and the folder when it writes trace files to a local folder on the WCF Server. When the Pickup Service runs on the Core Services Server (the typical installation), you need no firewall rule between the Pickup Service and the Log API or the Monitoring Service.
Tip
Local Folder Recommended: Nodinite strongly recommends logging to a local folder or a highly available file share to avoid problems within your WCF Application. Local access is more likely to be available and performs faster writes, reducing overhead.
Between the WCF Server and the file share
Required only when the WCF Application writes trace files to a remote SMB share. The IIS AppPool account needs Write permissions on the destination folder.
| Direction | Source | Destination | Protocol | Port(s) | Purpose | Notes |
|---|---|---|---|---|---|---|
| Outbound | Target (WCF Server) | File Server | TCP | 445 | Direct-hosted SMB (SMB 2/3) | Recommended |
| Outbound | Target (WCF Server) | File Server | TCP/UDP | 135-139 | Microsoft file sharing (NetBIOS) | Legacy SMB 1.0/CIFS only; consider disabling SMB 1.0 |
| Inbound | File Server | Target (WCF Server) | TCP/UDP | 135-139, 445 | Response traffic | Automatically allowed by stateful firewall inspection |
Between the Pickup Service and the file share
Required when the Pickup Service runs on another server than the folder (the file share, or the WCF Server's local folder shared over SMB).
| Direction | Source | Destination | Protocol | Port(s) | Purpose | Notes |
|---|---|---|---|---|---|---|
| Outbound | Agent Server | File Server | TCP | 445 | Read and delete trace files over SMB 2/3 | Recommended |
| Outbound | Agent Server | File Server | TCP/UDP | 135-139 | Microsoft file sharing (NetBIOS) | Legacy SMB 1.0/CIFS only |
| Inbound | File Server | Agent Server | TCP/UDP | 135-139, 445 | Response traffic | Automatically allowed by stateful firewall inspection |
Between the Pickup Service and the Log API
| Direction | Source | Destination | Protocol | Port(s) | Purpose | Notes |
|---|---|---|---|---|---|---|
| Outbound | Agent Server | Core Services Server | TCP (HTTPS/HTTP) | Log API site port | Post Log Events to the Log API | v7. The Log API is its own IIS web site; port set per environment in the Nodinite Portal (Servers step) |
Note
From Nodinite v7, the Monitoring Service also connects to the Pickup Service for Remote Configuration, and the Pickup Service may bypass the Log API and write to SQL Server. See the Pickup Service firewall requirements for those hops.
Between the servers and the Domain Controller
Required when the AppPool identity or the Pickup Service account is a domain account (or gMSA) that accesses the SMB share.
| Direction | Source | Destination | Protocol | Port(s) | Purpose | Notes |
|---|---|---|---|---|---|---|
| Outbound | Target (WCF Server), Agent Server | Domain Controller | TCP/UDP | 88 | Kerberos authentication | Required for domain authentication |
| Outbound | Target (WCF Server), Agent Server | Domain Controller | TCP/UDP | 389 | LDAP | Standard LDAP queries |
| Outbound | Target (WCF Server), Agent Server | Domain Controller | TCP | 636 | LDAPS (Secure LDAP) | Required for LDAPS authentication |
Between the servers and DNS
| Direction | Source | Destination | Protocol | Port(s) | Purpose | Notes |
|---|---|---|---|---|---|---|
| Outbound | Target (WCF Server) | DNS Server | TCP/UDP | 53 | Name resolution | Resolve the File Server and the Domain Controller. A local hosts file can replace DNS |
| Outbound | Agent Server | DNS Server | TCP/UDP | 53 | Name resolution | Resolve the File Server, the Domain Controller, and the Core Services Server |
Important
Stateful Firewalls: Most Windows Firewall implementations are stateful, so response traffic for established outbound connections is allowed automatically. The inbound response rules above are for reference and troubleshooting.
Frequently asked questions
Additional solutions to common problems and the FAQ for the Nodinite WCF Diagnostics Tracing Feature exist in the Troubleshooting user guide.
Next Steps
Complete these steps to enable WCF Diagnostics Tracing with business intelligence:
- Install WCF Diagnostics Feature - Download and install the feature
- Configuration - Configure DefaultMessageType and MessageTypeFromBody properties
- Message Types - Define business transaction types (Critical first step)
- Search Field Expressions - Configure extraction of business data
Related Topics
- Message Types (Mandatory) - Define business transaction types for Search Field extraction
- Search Field Expressions - Extract business data from WCF messages
- Log Views - Manage user access to WCF diagnostic data
- Non-Events Monitoring - Track message volumes and detect data outages
- Business Process Modeling (BPM) - Correlate transactions end-to-end
- Pickup Service - Fetches WCF trace files asynchronously
- Log Agents - Manage Log Agents
- LogAPI - Log API overview
- Administration - Nodinite Administration
- Release Notes