Core Concept Questions: The ABC of WCF
The most common opening interview question is to explain WCF's 'ABC': Address (where the service lives, a URI like http://host/Service.svc), Binding (how to communicate, encoding, transport, and security specified by classes like BasicHttpBinding or NetTcpBinding), and Contract (what the service offers, defined via [ServiceContract] and [OperationContract] attributes on an interface). A strong candidate should be able to explain that every endpoint a WCF service exposes is precisely the combination of these three elements, and that a single service can expose multiple endpoints with different bindings for different client needs.
Cricket analogy: Explaining the ABC is like explaining a fixture: the Venue (Address, which stadium), the Format (Binding, Test/ODI/T20 rules), and the Teams and rules of engagement (Contract, what's actually being played) together fully define the match.
Bindings and Contracts Questions
Interviewers frequently ask candidates to differentiate the four contract types: ServiceContract (defines the operations a service exposes), OperationContract (marks an individual method as callable remotely), DataContract (defines how a custom type is serialized, with [DataMember] marking individual serialized fields), and MessageContract (gives fine-grained control over the exact SOAP message structure, including headers vs. body). A follow-up question usually probes InstanceContextMode (PerCall, PerSession, Single) and ConcurrencyMode (Single, Multiple, Reentrant), testing whether the candidate understands that PerCall creates a new service instance per request while Single shares one instance across all clients, requiring careful thread-safety consideration when combined with ConcurrencyMode.Multiple.
Cricket analogy: InstanceContextMode.PerCall is like fielding a fresh eleven for every single match with no shared history, while Single is like one legendary all-rounder playing every match of the tournament alone, carrying state (fatigue, form) across every game.
Advanced and Scenario-Based Questions
Senior-level interviews often present a scenario: 'A WCF service works fine for a while, then all subsequent calls start throwing TimeoutException.' The expected answer involves reasoning about maxConcurrentCalls/maxConcurrentSessions throttling limits being exhausted, or more commonly, InstanceContextMode.Single combined with ConcurrencyMode.Single meaning only one caller can be served at a time, causing calls to queue and eventually time out under load; the fix usually involves ConcurrencyMode.Multiple with proper locking, or switching to PerCall instancing. Another common scenario question covers securing a service, expecting the candidate to know that wsHttpBinding supports WS-Security message-level encryption suitable for going through intermediaries, while basicHttpBinding paired with an HTTPS transport binding provides simpler transport-level security appropriate for direct point-to-point calls.
Cricket analogy: A Single-instance service becoming a bottleneck under load is like a team relying on one bowler to bowl every over of a match, they eventually break down under the sustained workload while everyone else stands idle.
// Fixing a Single-instance concurrency bottleneck
[ServiceBehavior(
InstanceContextMode = InstanceContextMode.Single,
ConcurrencyMode = ConcurrencyMode.Multiple)]
public class InventoryService : IInventoryService
{
private readonly object _lock = new object();
private readonly Dictionary<int, int> _stock = new Dictionary<int, int>();
public int ReserveStock(int productId, int quantity)
{
lock (_lock)
{
if (_stock[productId] < quantity)
throw new FaultException("Insufficient stock");
_stock[productId] -= quantity;
return _stock[productId];
}
}
}For scenario questions, interviewers value candidates who reason from first principles about instancing, concurrency, and binding trade-offs rather than reciting binding names. Being able to say WHY wsHttpBinding uses message-level security (for multi-hop intermediary scenarios) versus WHY basicHttpBinding+HTTPS suffices for direct calls demonstrates real understanding.
- The ABC of WCF: Address (where), Binding (how), Contract (what) together define every endpoint.
- ServiceContract/OperationContract define exposed operations; DataContract/DataMember define serialized type shape; MessageContract controls raw SOAP structure.
- InstanceContextMode controls service instance lifetime: PerCall, PerSession, or Single.
- ConcurrencyMode controls thread-safety guarantees: Single, Multiple, or Reentrant.
- InstanceContextMode.Single with ConcurrencyMode.Single is a common cause of TimeoutException under load due to serialized request handling.
- wsHttpBinding provides WS-Security message-level security suitable for multi-hop scenarios; basicHttpBinding with HTTPS provides simpler transport-level security for direct calls.
- Strong candidates reason about trade-offs (why a binding/mode was chosen) rather than just naming WCF features.
Practice what you learned
1. What do the three letters in WCF's 'ABC' stand for?
2. Which InstanceContextMode creates a new service instance for every single client call?
3. What commonly causes a WCF service to start throwing TimeoutException under sustained load?
4. Which binding provides WS-Security message-level encryption suitable for scenarios with intermediaries?
5. What attribute marks an individual field of a custom type for WCF serialization?
Was this page helpful?
You May Also Like
WCF Quick Reference
A condensed cheat sheet of WCF bindings, contract attributes, hosting options, and configuration essentials for day-to-day lookup.
Consuming WCF Services
How .NET client applications discover, generate proxies for, and call WCF services reliably, including channel lifecycle and fault handling.
WCF vs gRPC
A technical comparison of WCF's SOAP-based service model against gRPC's HTTP/2 and Protocol Buffers approach, and when to choose each.
Related Reading
Related Study Notes in Microsoft Technologies
Browse all study notesWindows 10 / UWP Development Study Notes
.NET · 30 topics
Microsoft TechnologiesWindows Batch Scripting Study Notes
Batch · 30 topics
Microsoft TechnologiesMFC (Microsoft Foundation Classes) Study Notes
C++ · 30 topics
Microsoft TechnologiesSilverlight Study Notes
.NET · 30 topics
Microsoft TechnologiesXAML Study Notes
.NET · 30 topics
Microsoft TechnologiesWPF (Windows Presentation Foundation) Study Notes
.NET · 30 topics