Fact-checked by Grok 2 weeks ago

Windows Communication Foundation

Windows Communication Foundation (WCF) is a unified and runtime environment within the designed for building service-oriented applications that facilitate secure, reliable, and transacted message exchanges between distributed systems. Introduced as part of .NET Framework 3.0 in November 2006, WCF unifies previous Microsoft technologies such as ASMX web services, .NET Remoting, and MSMQ into a single extensible supporting modern web standards. WCF enables developers to create services that expose endpoints for asynchronous communication using various message patterns, including request-reply, one-way, and duplex exchanges. It supports interoperability with non-.NET platforms through adherence to WS-* specifications, such as for authentication and encryption, and WS-ReliableMessaging for guaranteed delivery. Key components include service contracts that define operations, data contracts for structuring messages, and bindings that configure transport protocols like HTTP, , and MSMQ along with message encodings such as text, , or MTOM. At its core, WCF's architecture consists of layers for contracts, service runtime behaviors (e.g., transactions, ), messaging ( stack for processing), and hosting/, allowing services to run in processes, IIS, or Windows services. The framework also integrates with for workflow-enabled services and supports features like queued messaging for offline scenarios and RESTful endpoints for web-friendly APIs. Over time, WCF evolved through versions up to 4.5 in 2012, adding enhancements like configuration simplification, asynchronous streaming support, and binary encoder compression for improved performance. In 2015, open-sourced portions of WCF under the 2.0 to encourage broader adoption and cross-platform development. However, with the shift to Core and later 5+ starting in 2020, deprecated WCF server-side development for new applications, recommending alternatives like for high-performance RPC or for web APIs, while maintaining support for WCF clients in modern . As of November 2025, maintains support for WCF clients in modern until at least November 2026, and the CoreWCF project released version 1.6 in August 2024. Community efforts, such as the CoreWCF project, continue to port and maintain WCF functionality for cross-platform use.

Overview

Definition and Purpose

Windows Communication Foundation (WCF) is a and a set of application programming interfaces (APIs) within the .NET Framework designed for building and consuming distributed services that enable communication between applications. It unifies previous .NET technologies such as ASMX web services, .NET Remoting, and Message Queuing (MSMQ), providing a single, extensible model for service development that simplifies interoperability and reduces complexity in distributed systems. The primary purpose of WCF is to facilitate (SOA) by enabling standardized, secure, and reliable messaging across diverse environments, particularly in enterprise applications requiring and . It supports asynchronous messaging patterns, allowing services to handle requests without blocking, which enhances performance in high-load scenarios. Key benefits include compatibility with multiple transport protocols such as HTTP for web-based communication, for efficient binary exchanges, and named pipes for high-speed on the same machine. Additionally, WCF accommodates various message exchange patterns, including request-reply for typical client-server interactions, one-way for operations, and duplex for bidirectional communication. At a high level, WCF employs the ABC model to define service endpoints, where Address specifies the location of the service, Binding configures the communication protocol and security details, and Contract outlines the operations and data structures available. Endpoints represent the combination of these ABC elements, serving as the entry points for clients to access service functionality.

History and Development

Windows Communication Foundation (WCF) originated as the "" project, announced by at the Professional Developers Conference (PDC) on October 27, 2003, as a unified for building connected systems based on Web services architecture. This initiative evolved from earlier .NET technologies such as .NET Remoting for distributed object communication and Enterprise Services for component-based transaction management, aiming to consolidate and extend their capabilities into a more interoperable, secure, and reliable model for service-oriented applications. WCF was initially released on November 6, 2006, as a core component of the .NET Framework 3.0, formerly known as the WinFX initiative, which also introduced Windows Presentation Foundation (WPF) for user interfaces and (WF) for workflow automation. Subsequent versions brought key enhancements: .NET Framework 3.5 in November 2007 added support for RESTful services and AJAX integration to enable lighter-weight, HTTP-based interactions; .NET Framework 4.0 in April 2010 introduced simplified configuration defaults and a built-in service for message redirection; and .NET Framework 4.5 in August 2012 incorporated task-based asynchronous programming patterns along with UDP transport for scenarios. Developed by 's .NET team, WCF transitioned to in May 2015 under the , with client-side libraries made available via packages for cross-platform use on .NET Core. Server-side support arrived later through the community-driven CoreWCF project, initiated in June 2019 under the .NET Foundation with an initial code donation from , enabling WCF services to run on .NET Core 3.0 and later versions. Post-open-sourcing, the project has benefited from community contributions, including enhancements from organizations like AWS, accelerating its development and adoption for modernizing legacy applications.

Architecture

Core Layers

Windows Communication Foundation (WCF) employs a layered that separates concerns across four primary layers: contracts, , messaging, and /hosting. This design enables developers to build and extend service-oriented applications by addressing different aspects of communication, from defining interfaces to managing transport protocols. The contracts layer establishes the foundational agreements between services and clients, specifying what operations are available and how data is structured. The layer handles the execution environment, including behaviors that govern instance management and error handling. The messaging layer manages the actual exchange of messages, incorporating channels for formatting, , and transmission. Finally, the and hosting layer oversees the lifecycle of the service process, ensuring proper initialization and resource allocation. Message flow in WCF follows a structured path through these layers, differing for inbound and outbound directions. For inbound messages arriving at a service, processing begins at the bottom of the stack in the messaging layer, where the transport channel receives the raw data and passes it upward through protocol channels for decoding, security validation, and formatting. The message then reaches the service runtime for execution against the contracts layer, which deserializes and invokes the appropriate operations. Outbound messages traverse the layers in reverse: starting from the contracts and runtime, where responses are generated, then flowing downward through the messaging layer for encoding and transmission via the transport channel. This bottom-up/top-down model ensures efficient processing while allowing interception at various points for . Within the messaging layer, channels form a stack that implements the binding configuration, comprising transport channels and protocol channels. Transport channels, such as those for HTTP or , operate at the lowest level, handling the physical transmission of messages over protocols and converting between wire formats and WCF's internal Message objects. Protocol channels, layered above transports, add higher-level features like reliable messaging or ; for instance, a channel encrypts message contents and signs headers to ensure and . These channels process messages in sequence, enabling modular addition of capabilities without altering core service logic. WCF's architecture emphasizes extensibility, particularly in the messaging and activation layers, to support advanced scenarios. Developers can create custom channels by implementing interfaces like IInputChannel or IOutputChannel, allowing of non-standard transports or protocols. Similarly, custom dispatchers in the messaging layer enable tailored of messages to service operations, while hosting extensions permit with diverse environments like IIS for web . These points provide flexibility for enterprise-scale deployments without compromising the 's core principles.

Endpoints and ABC Model

In Windows Communication Foundation (WCF), an endpoint serves as the fundamental logical entity that enables communication between clients and services, allowing services to expose their operations and clients to connect for invoking those operations. Each endpoint is composed of three primary components known as the ABC model—Address, Binding, and Contract—which together define how messages are sent, received, and processed at the service boundary. These components ensure interoperability and flexibility in distributed applications by specifying the location, protocol stack, and interface for interaction. The component identifies the precise location of the using a Uniform Resource Identifier (URI), which includes a , information, optional , and a to the . For instance, an address like http://[localhost](/page/Localhost):8080/MyService uses the HTTP for , specifies the local machine and 8080, and points to the /MyService. The URI's determines the underlying protocol, such as HTTP for web-based communication or for efficient local network interactions, while the delineates the specific within a hosted . This structure allows clients to route messages accurately to the intended instance. The configures the communication protocol stack for the endpoint, encompassing transport protocols, message encoding, reliability mechanisms, security features, and transaction support to tailor the interaction to specific requirements. Bindings are implemented via classes derived from the abstract Binding base class, with system-provided options like BasicHttpBinding for simple HTTP transport with text encoding, or NetTcpBinding for TCP transport optimized for .NET-to-.NET communication over local networks. Key elements include transport (e.g., HTTP or TCP), encoding formats such as text XML or binary for compactness, reliability via WS-ReliableMessaging for guaranteed delivery, security modes like SSL for encryption and authentication, and transaction protocols for atomic operations across services. Custom bindings can be created by stacking these elements to support specialized scenarios, ensuring the endpoint's messages are formatted and secured appropriately. The defines the semantic agreement for the endpoint's operations and data exchange, outlining the service's without exposing implementation details. It comprises service contracts, data contracts, and message contracts to specify what the service offers. Service contracts, marked with the [ServiceContract] attribute on an or class, declare the available operations using [OperationContract] on methods, supporting patterns like request-reply or one-way messaging. Data contracts, defined via the [DataContract] attribute on classes or structures, serialize complex data types for parameters and return values, with [DataMember] specifying serializable members to ensure consistent data exchange between clients and services. Message contracts provide fine-grained control over message formatting using [MessageContract], allowing custom headers via [MessageHeader] and body elements via [MessageBodyMember] for scenarios requiring non-standard message structures. Together, these contract types enable type-safe, interoperable communication. A single WCF service can expose multiple endpoints, each with distinct combinations of address, binding, and contract, to accommodate diverse client needs such as different transport protocols or security levels. For example, the same service might offer an HTTP-based endpoint for web clients and a TCP-based one for internal applications, all hosted under the same service host without duplicating implementation code. This multiplicity enhances flexibility, allowing gradual evolution of service exposure while maintaining . Endpoints interact with the service's core layers, such as the channel layer for message dispatching, to process incoming requests efficiently.

Behaviors and Runtime Extensions

In Windows Communication Foundation (WCF), behaviors represent configurable attributes or extensions that modify the operation of services and endpoints, allowing developers to control aspects such as threading, instance lifecycle, and resource limits without altering core contracts. These behaviors are applied at the , affecting the entire via implementations of the IServiceBehavior , or at the endpoint level through IEndpointBehavior, and can be specified programmatically, via attributes, or in configuration files. By default, WCF provides built-in behaviors that enforce sequential message processing and per-session instancing, but custom extensions enable interception for tasks like logging or validation during message dispatch. Key service behaviors include concurrency management, which determines how messages are processed relative to threading models. The ConcurrencyMode property in ServiceBehaviorAttribute supports three modes: Single for sequential processing of one message at a time (the default), Multiple for concurrent handling of multiple messages on a thread-safe instance, and Reentrant for single-message processing that permits re-entrance during outbound calls. For example, a service implementing multiple concurrency might use:
csharp
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple)]
public class CalculatorService : ICalculator
{
    public double Add(double n1, double n2) { /* implementation */ }
}
This allows higher throughput but requires to avoid conditions. Instancing behaviors control the creation and lifetime of service instances in response to client requests, defined via the InstanceContextMode in ServiceBehaviorAttribute. The modes are PerCall (a new instance per operation call, promoting but increasing overhead), PerSession (one instance per client session, preserving across calls), and Single (a shared singleton instance for all clients, suitable for stateless or read-only services). In a per-session scenario, the service maintains , as shown in a requiring sessions:
csharp
[ServiceContract(SessionMode = SessionMode.Required)]
public [interface](/page/Interface) ICalculatorSession { /* operations */ }
Throttling behaviors limit resource consumption to prevent overload, configurable through ServiceThrottlingBehavior properties like MaxConcurrentCalls (limits simultaneous operations), MaxConcurrentInstances (caps active instances), and MaxConcurrentSessions (restricts open sessions). For instance, in :
xml
<serviceBehaviors>
  <behavior>
    <serviceThrottling maxConcurrentCalls="2" maxConcurrentInstances="10" />
  </behavior>
</serviceBehaviors>
This ensures predictable under load by queuing excess requests. handling in WCF behaviors focuses on fault , using fault contracts to define structured exceptions exposed to clients. Operations declare faults with FaultContractAttribute, mapping .NET exceptions to faults for interoperability, while ServiceDebugBehavior.IncludeExceptionDetailInFaults enables detailed diagnostics in development (set to true via attribute or config). An example contract specifies a fault:
csharp
[ServiceContract]
public interface IMathService
{
    [OperationContract]
    [FaultContract(typeof(MathFault))]
    double Divide(double x, double y);
}
Dispatching behaviors govern operation invocation, customizable through the ApplyDispatchBehavior method in IServiceBehavior implementations, which allows inspection and modification of the DispatchRuntime to alter message routing or add pre/post-invocation logic. Runtime extensions provide extensibility by implementing interfaces like IServiceBehavior to hook into the runtime pipeline, enabling custom logic such as validation during Validate or behavior application in ApplyDispatchBehavior. For example, a custom behavior for might extend endpoints:
[public](/page/public) [class](/page/class) LoggingBehavior : IServiceBehavior
{
    [public](/page/public) void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
    {
        // Add dispatch message inspectors
    }
}
These are registered via extensions or , such as host.Description.Behaviors.Add(new LoggingBehavior());. Session management integrates with behaviors to support stateful interactions, where PerSession instancing ties instance state to a client-initiated session, enforced by SessionMode.Required in service contracts and enabled by sessionful bindings like WsHttpBinding for reliable, ordered delivery. This contrasts with stateless modes (SessionMode.NotAllowed), which discard state after each call, optimizing for ; reliable sessions further ensure message durability via binding configurations without relying solely on behaviors.

Programming Model

Defining Contracts and Services

In Windows Communication Foundation (WCF), service contracts define the operations that a service exposes to clients, typically through interfaces marked with the ServiceContractAttribute. This attribute indicates that the interface or class outlines a for the service, specifying details such as the namespace to ensure uniqueness and . For instance, the namespace property helps avoid naming conflicts in distributed environments. Methods within the interface are designated as operations using the OperationContractAttribute, which exposes them as endpoints for invocation. Developers can customize operation behavior by setting properties like Action to define the SOAP action name for precise message routing, or ProtectionLevel to enforce requirements such as signing or on the operation. To implement a service contract, developers create concrete classes that realize the interface defined by the service contract. These classes inherit from the contract interface and provide the actual logic for each operation, allowing the to process requests and return responses. WCF instantiates these classes based on configured instancing modes, such as per-call or , to manage lifecycle and concurrency. While WCF does not have built-in like newer .NET frameworks, it supports integration with dependency injection containers through custom IServiceBehavior implementations or instance providers, enabling constructor injection and improved testability for service classes. Data contracts in WCF govern the and deserialization of complex types exchanged between services and clients, using the DataContractAttribute applied to classes, structures, or enumerations to mark them as serializable. Within these types, individual fields or properties are included in the via the DataMemberAttribute, which overrides access modifiers and supports ordering for compatibility. For handling polymorphic types or unexpected subtypes during deserialization, the KnownTypeAttribute can be used to explicitly list derived types, ensuring robust handling of hierarchies. Versioning of data contracts is facilitated through properties like IsReference in DataContractAttribute to manage circular references and , allowing services to evolve without breaking clients. Message contracts provide developers with granular control over the structure of messages, particularly for scenarios requiring custom headers or body formatting, by applying the MessageContractAttribute to a type. This attribute allows specification of wrapper elements via WrapperName and WrapperNamespace properties, controlling whether the message body is wrapped (default) or bare. Members designated as headers use MessageHeaderAttribute to place them outside the body for metadata like authentication tokens, while MessageBodyMemberAttribute positions elements within the body, supporting ordered or unordered arrangements. This approach is useful for integration or when precise adherence is needed beyond default data contracts. Fault contracts enable the definition of custom error conditions that can be reliably propagated to clients as standardized faults, using the FaultContractAttribute on service operations. This attribute specifies the detail type of the fault, which must be serializable, and can include an explicit Action for fault-specific routing or ProtectionLevel for securing fault details. In implementation, services throw FaultException<TDetail> instances populated with custom fault objects, ensuring clients receive structured error information rather than generic exceptions. This mechanism promotes clean separation of error handling from while maintaining with WS-I Profile standards.

Client-Side Development

Client-side development in Windows Communication Foundation (WCF) involves creating applications that consume services by generating proxies or channels to interact with service endpoints. These clients rely on service contracts defined on the server side as the foundation for generating client code, ensuring type-safe communication. Proxy generation is a primary method for building WCF clients, enabling automatic creation of strongly typed classes from service metadata. Developers can use the Service Model Metadata Utility Tool (Svcutil.exe) to generate client proxies from WSDL or MEX endpoints; for example, the command svcutil http://localhost:8000/MyService?wsdl produces a proxy class and configuration file. Alternatively, Visual Studio's "Add Service Reference" feature internally invokes Svcutil.exe to import metadata and generate proxies, supporting options like asynchronous methods via the /async flag. These proxies, inheriting from ClientBase<TChannel>, encapsulate endpoint details and provide methods mirroring the service contract for straightforward invocation. For more dynamic scenarios, such as when metadata is unavailable or custom bindings are required, clients can use ChannelFactory<TChannel> to manually create communication channels. This class allows programmatic specification of bindings and endpoints, as in var factory = new ChannelFactory<IMyContract>(new BasicHttpBinding(), new EndpointAddress("http://[localhost](/page/Localhost):8000/MyService"));, followed by var channel = factory.CreateChannel();. Channel factories support reusing a single instance to generate multiple channels, offering flexibility over generated proxies for advanced configurations like custom or settings. WCF clients support various invocation patterns to suit different performance needs. Synchronous calls block the calling until completion, such as proxy.MyMethod(input);, suitable for simple request-response interactions. Asynchronous patterns include event-based models generated with Svcutil.exe's /async option, using BeginMyMethod and EndMyMethod, or the task-based asynchronous pattern (TAP) in .NET 4.5 and later, leveraging async/await with methods like await [proxy](/page/Proxy).MyMethodAsync(input);. For duplex communication, clients implement callback contracts by providing an InstanceContext with a class realizing the callback , enabling the service to invoke methods on the client, such as notifications in scenarios. Error handling on the addresses both service faults and communication issues to ensure robust applications. FaultException<TDetail> is thrown for service-defined faults, allowing access to custom error details via the Detail property, while CommunicationException captures transport-level errors like network failures. Timeout management involves catching TimeoutException and aborting the with ((IClientChannel)proxy).Abort(); to prevent resource leaks. Best practices recommend wrapping calls in a single try-catch block ordered from specific to general—FaultException<TDetail>, FaultException, CommunicationException, TimeoutException—and explicitly closing or aborting the or afterward. Client is typically managed through the app.config file under the <system.serviceModel> section, defining endpoints and bindings declaratively. An endpoint entry specifies the , , and , for example:
xml
<client>
  <endpoint address="http://localhost:8000/MyService"
            binding="basicHttpBinding"
            contract="IMyContract" />
</client>
Bindings can be customized, such as setting modes or timeouts in <bindings><basicHttpBinding><binding name="MyBinding" receiveTimeout="00:10:00" /></basicHttpBinding></bindings>. This approach allows adjustments without recompiling, with Svcutil.exe generating initial config files from .

Hosting and Deployment

Hosting Environments

Windows Communication Foundation (WCF) services require a hosting environment to manage their lifecycle, including creation, activation, and shutdown, allowing them to receive and process messages from clients. These environments provide varying levels of control, scalability, and integration with the Windows operating system, enabling developers to choose based on deployment needs such as development flexibility or production reliability. Self-hosting involves running a WCF service within a managed application, such as a , Windows Forms, or Windows Presentation Foundation (WPF) program, using the ServiceHost class to instantiate and manage the service. This approach offers full programmatic control over the service lifecycle, including opening and closing the host, defining endpoints imperatively in code, and enabling metadata publishing for client discovery. It is particularly suited for development and testing scenarios or rich client applications where minimal infrastructure is preferred, though it lacks built-in process recycling or health monitoring. Internet Information Services (IIS) hosting integrates WCF services with IIS or IIS Express, leveraging the web server's process model for HTTP-based activation without requiring custom hosting code. Services are deployed as .svc files within an IIS application, benefiting from features like automatic process recycling, idle timeout management, and health monitoring to ensure availability. This environment supports shared hosting of multiple services and is ideal for web-facing applications, particularly on older platforms such as or Server 2003 (end of support in 2014 and 2010, respectively), but it is limited to HTTP transports. The Windows Activation Service (WAS), introduced in and Server 2008, extends IIS capabilities by supporting non-HTTP protocols such as , named pipes, and MSMQ for message-based activation. WAS manages worker process lifetimes independently of IIS, providing process recycling, health monitoring, and dynamic activation based on incoming messages, which enhances resource efficiency and supports multi-protocol services. It enables robust hosting for enterprise scenarios requiring transports beyond HTTP, without a full IIS dependency. Hosting WCF services as managed Windows services allows for long-running, unattended operation controlled by the (SCM), suitable for background processes outside web contexts. The service inherits from ServiceBase and uses ServiceHost to open the WCF host during startup and close it during shutdown, supporting all transport protocols and automatic startup on system boot. This model provides and through OS integration but requires manual installation via tools like InstallUtil.exe. WCF supports distinct activation models to handle service instantiation: message-based activation in IIS and WAS, where the host activates on incoming messages, versus manual activation in self-hosting or Windows services using ServiceHost.Open(). In shared hosting scenarios, multiple endpoints can share a single ServiceHost instance for efficiency, while per-endpoint activation allows isolated management; metadata exchange (MEX) endpoints, configured via the IMetadataExchange contract, facilitate by publishing metadata for client tools like Svcutil.exe. Behaviors can influence activation indirectly by customizing runtime aspects, such as throttling or . For cross-platform and modern .NET support as of 2025, the open-source CoreWCF project enables WCF service hosting in .NET 5 and later, primarily through self-hosting with and support for IIS on Windows.

Configuration and Management

Windows Communication Foundation (WCF) services and clients are primarily configured using XML-based configuration files, such as web.config for IIS-hosted services or app.config for other applications, which reside in the application's root directory. These files contain a dedicated <system.serviceModel> section that defines services, endpoints, bindings, and behaviors, allowing administrators to modify settings without recompiling code. For instance, endpoints are specified with address, binding, and contract (ABC) elements to map service operations to communication protocols. In addition to declarative configuration via files, WCF supports imperative, code-based configuration for dynamic scenarios, such as during application startup. Developers can use the ServiceHost class to programmatically add endpoints by instantiating objects (e.g., BasicHttpBinding) and EndpointAddress objects, then applying them via the AddServiceEndpoint method, which is useful for custom bindings or runtime adjustments. .NET Framework 4.6.1 introduced simplified configuration defaults to reduce verbosity in these files by automatically inferring standard settings for HTTP bindings and behaviors. Diagnostics in WCF enable through tracing, counters, and , configurable via the <system.diagnostics> section in files or programmatically. Tracing captures runtime events like service initialization and processing using trace sources such as System.ServiceModel, with levels ranging from to Verbose, and supports activity propagation for correlating traces across components. records envelopes for inspection, aiding in issues, while counters track metrics like calls per second and queue lengths via categories such as ServiceModelService. Event Tracing for Windows (ETW) provides low-overhead analytic tracing for production monitoring. Management tools facilitate configuration editing and diagnostic analysis without deep XML knowledge. The Service Configuration Editor (SvcConfigEditor.exe), included in the Windows SDK, offers a graphical to create and modify <system.serviceModel> settings, validate changes, and generate configuration files. The Service Trace Viewer (SvcTraceViewer.exe) processes .svclog files from tracing and message logging, allowing users to filter, group, and visualize traces in a timeline view for fault diagnosis. WCF integrates with (WMI) for runtime monitoring, exposing classes like System.ServiceModel.ServiceHost to query service status, endpoint details, and data programmatically or via tools like WMI Code Creator. To ensure configuration integrity, WCF employs schema validation against the official WCF configuration , which defines elements for bindings, behaviors, and services to catch errors during editing. Integrated development environments like provide IntelliSense and real-time validation based on this schema, preventing invalid attributes or missing required elements in bindings and behaviors.

Security

Authentication Mechanisms

Windows Communication Foundation (WCF) supports multiple mechanisms to verify the identities of clients and services during secure communications, ensuring that only authorized parties can access resources. These mechanisms leverage established protocols and integrate with broader .NET Framework capabilities, allowing developers to choose based on deployment scenarios such as domains or internet-facing services. occurs at the message or transport level, establishing a security context before further operations like . Windows authentication in WCF is designed for domain environments and integrates seamlessly with Windows credentials, utilizing the Negotiate Security Support Provider (SSP) to handle protocols like for or as a fallback in workgroup settings. provides efficient ticket-based validation without transmitting passwords, while uses challenge-response for compatibility in non-domain scenarios, though it is less secure due to potential replay attacks. This mechanism is enabled by default in bindings like WSHttpBinding or NetTcpBinding when hosted in IIS or self-hosted within a , allowing clients to impersonate domain accounts for resource access. Certificate-based authentication employs digital certificates to establish trust between clients and services, supporting both server-only and modes. In , the service presents an SSL certificate for client verification, while the client supplies its own certificate, which the service validates against trusted certificate authorities like Certificate Services. Certificates are retrieved from Windows certificate stores specified by parameters such as StoreName (e.g., "My" for personal certificates) and X509FindType (e.g., FindBySubjectName for name-based lookup), ensuring secure over transport protocols like . This approach is particularly suited for scenarios requiring strong, non-repudiable identity proof without relying on shared secrets. For scenarios involving non-Windows users, WCF supports username and authentication through the UserNamePasswordValidator , which allows validation logic against or external providers. Clients provide credentials over secure channels, such as message security with WSHttpBinding, where passwords are encrypted using an accompanying service certificate to prevent exposure. Integration with the Membership Provider enables against SQL Server storing hashed credentials, facilitating role-based access in web-hosted services. This mechanism is configured via service behaviors, with validators overriding default checks to support enterprise identity stores. Issued tokens provide a federated authentication model, where clients obtain security tokens from a trusted Security Token Service (STS) compliant with WS-Trust, avoiding direct credential exchange with the service. Tokens can be SAML assertions carrying claims like user identity or roles, or custom formats issued by an STS, which the service validates against its trust policy. WCF bindings like WSFederationHttpBinding automate token requests and bootstrapping, enabling scenarios across organizational boundaries while supporting rich claim sets for fine-grained decisions. This approach enhances scalability in distributed systems by centralizing identity issuance. Custom authentication in WCF extends beyond built-in options by implementing the ServiceAuthorizationManager class, which evaluates access post-initial based on claims in the AuthorizationContext. Developers override the CheckAccessCore method to enforce custom policies, such as verifying specific claims against operation URIs or integrating with external services, without altering core credential handling. This is registered via (e.g., serviceAuthorizationManagerType attribute) or code on the service host, allowing tailored to application needs while maintaining WCF's extensible pipeline.

Security Modes and Bindings

Windows Communication Foundation (WCF) provides several modes to protect message transfer, ensuring , , and as needed for communications. These modes are configured at the level and determine how is applied during transmission. The available modes include None, , , and TransportWithMessageCredential (also known as mixed mode). The None mode offers no inherent protection, making it suitable only for non-sensitive, internal scenarios where is handled externally. In mode, is enforced at the , typically using with SSL/TLS to provide point-to-point and . This mode leverages established protocols for efficient, hardware-accelerated protection but limits end-to-end to scenarios without intermediaries like proxies. It effectively addresses man-in-the-middle attacks through and server authentication via certificates. , in contrast, applies at the using specifications, including XML digital signatures and for end-to-end protection. This allows messages to remain secure across multiple hops and supports advanced features like timestamps and nonces to prevent replay attacks. The TransportWithMessageCredential mode combines transport-level security for overall message integrity with message-level credentials for client , balancing performance and flexibility. It uses transport protections like SSL for the while embedding details in the SOAP message header, mitigating both man-in-the-middle and replay threats through layered mechanisms. Security modes are set programmatically via the binding's .Mode property or in configuration files using elements like within binding definitions. Bindings in WCF dictate the supported security modes and their defaults, tailoring protection to the protocol. For instance, BasicHttpBinding primarily supports mode with for 1.1 , enabling basic or Windows over HTTP while defaulting to no unless explicitly configured. WSHttpBinding defaults to Message mode, incorporating for signing and encryption with support for WS-Trust and WS-SecureConversation, ideal for scenarios requiring rich credential types like certificates or usernames. NetTcpBinding, designed for , defaults to mode with Windows , providing efficient, within Windows domains but also supporting Message mode for broader . These bindings ensure aligns with the communication stack, such as using for low-latency traffic. Protection levels allow fine-grained control over elements within security-enabled bindings, specifying whether parts are signed, encrypted, or both. The options include None (no ), Sign ( for ), and EncryptAndSign ( for followed by signing). These are applied via attributes like ServiceContractAttribute. or OperationContractAttribute., scoping hierarchically from contracts down to individual members or fault contracts. For example, an can require EncryptAndSign while allowing lower for headers, ensuring compliance with the binding's mode— modes protect the entire uniformly, overriding granular settings. WCF integrates claims-based through the Identity Model and Windows Identity Foundation (WIF), available in .NET Framework 4.0 and later, enhancing modes like for federated scenarios. Claims from (e.g., SAML) are evaluated via ServiceAuthorizationManager during processing, allowing policies to check identities, roles, or custom attributes for . Bindings such as WSFederationHttpBinding support this by configuring issued types and modes like , enabling seamless claims propagation in WS-Trust environments. This approach addresses complex authentication needs without altering core transport protections.

Interoperability

Supported Standards

Windows Communication Foundation (WCF) is designed to ensure with non-.NET systems by adhering to a range of established web services standards, particularly those in the and WS-* families. These standards enable WCF services to exchange , messages, and policies in a platform-agnostic manner, facilitating with diverse service-oriented architectures. WCF supports 1.1 through the BasicHttpBinding, which complies with the WS-I Basic Profile 1.1 for broad compatibility with legacy web services. For more advanced scenarios, it implements 1.2 in bindings such as WSHttpBinding and WS2007HttpBinding, ensuring conformance to the W3C Recommendation for structured message envelopes. Service descriptions and metadata exchange in WCF rely on WSDL 1.1 across all system-provided interoperability bindings, allowing clients to generate proxies from published contracts. Metadata Exchange (MEX) endpoints further leverage these standards to publish WSDL documents, XML schemas, and policies dynamically. Among the WS-* specifications, WCF provides robust support for WS-Addressing (2005/08 version) in bindings like WSHttpBinding, enabling references and asynchronous messaging without header encryption by default. WS-ReliableMessaging is implemented via the reliableSession option in WSHttpBinding and WS2007HttpBinding, guaranteeing message delivery assurance even over unreliable transports. WS-Policy is universally supported across all bindings to negotiate service requirements through domain-specific assertions, enhancing policy-driven . Additionally, 1.0 and 1.1 are available in select bindings for securing messages with mechanisms like UsernameToken and certificates. For federation, is supported through dedicated bindings such as WSFederationHttpBinding, which integrate WS-Trust for token issuance and SAML Token Profile 1.0/1.1 for identity propagation, offering full compliance in federated authentication scenarios while partial support applies to advanced token types outside these profiles. To address non-SOAP scenarios, WCF introduced the WebHttpBinding in .NET Framework 3.5, enabling RESTful services that transmit Plain Old XML (POX), JSON, or raw data over HTTP without SOAP envelopes. This binding supports HTTP verbs for resource-oriented operations, promoting lightweight interoperability with web clients and APIs. At the foundational level, WCF relies on XML 1.0 for message serialization and XML Schema Definition (XSD) 1.0 schemas to define data contracts, ensuring type-safe validation across platforms. For efficient handling of binary data, WCF implements the Message Transmission Optimization Mechanism (MTOM), which transmits attachments in native format rather than base64 encoding, compatible with text/xml and WS-Security. These XML standards underpin all WCF messaging, with full compliance to W3C and OASIS specifications for schema validation and optimization.

Cross-Platform Integration

Windows Communication Foundation (WCF) facilitates -based interoperability by automatically generating (WSDL) documents from service contracts, enabling non-.NET clients such as Apache Axis to consume these services through standard 1.1 or 1.2 protocols. This WSDL export allows tools like Apache Axis to generate client-side stubs in , ensuring compatibility for cross-platform communication over HTTP or transports. Versioning mismatches, such as differences in schema definitions between WCF and Axis-generated proxies, can be mitigated by explicitly configuring bindings to use basic HTTP and avoiding advanced WS-* policies not fully supported in older Axis versions. For RESTful integration, WCF employs the WebHttpBinding alongside attributes like WebGetAttribute and WebInvokeAttribute to expose operations as HTTP endpoints that return or XML payloads, making services accessible to browser-based clients or mobile applications without requiring tooling. These attributes map operations to specific templates and HTTP methods (e.g., GET for retrieval, for updates), allowing non-.NET clients to interact via standard HTTP requests while supporting for or XML based on the Accept header. This approach simplifies integration with in web browsers or native apps on platforms like and , where direct HTTP calls replace complex generation. In enterprise environments, WCF integrates with Java EE applications through JAX-WS by adhering to WS-I Basic Profile standards, allowing JAX-WS clients to invoke WCF services via generated WSDL and shared envelopes. , for instance, has been tested for with WCF, supporting features like for authentication while resolving discrepancies in message headers through policy assertions. Additionally, WCF enables integration with legacy COM+ components by hosting them as WCF services using the ComServiceHost class, which exposes COM+ transactions and queuing as standard WCF endpoints without modifying the underlying COM+ code. Common pitfalls in cross-platform integration include data contract mismatches, particularly with enumerations and collections, where deserialization fails if derived types or enum values are not anticipated by the client. For enumerations, applying the ensures only specified values are serialized, preventing runtime errors from unnamed or flags-based enums in non-.NET clients. Collection mismatches, such as versus , can lead to binding failures; these are resolved by using the on base data contracts to explicitly declare polymorphic types or collection variants for proper schema inference. To validate interoperability, tools like SoapUI can import WCF WSDL to simulate requests from non-.NET environments, testing message formats and fault handling without deploying full clients. Fiddler, as a debugging proxy, captures and inspects HTTP traffic between WCF services and cross-platform clients, aiding in diagnosing issues like encoding mismatches or header anomalies during integration testing. For cross-platform .NET environments, the CoreWCF project, open-sourced by , ports WCF functionality to .NET, maintaining support for the same interoperability standards and bindings, enabling WCF services to run on non-Windows platforms while ensuring compatibility with non-.NET clients.

Current Status

Deprecation and Support Lifecycle

Windows Communication Foundation (WCF) maintains full support as part of the .NET Framework 4.8, which is actively maintained with its lifecycle tied directly to the underlying Windows operating system versions, ensuring no fixed end-of-support date. Security updates and for .NET Framework 4.8, including WCF, will continue as long as the host OS remains in support, such as , whose mainstream support ended on October 14, 2025 (with paid Extended Security Updates available until October 2028), or later versions like (supported until October 14, 2031). Server-side WCF functionality in .NET Core 3.1, an LTS release, concluded its standard support period on December 13, 2022, with no official extensions from . No new features have been introduced to WCF since the .NET Framework 4.8 release in April 2019, marking the end of active development for the full framework implementation. As of November 2025, the current status of WCF emphasizes client-side usage for legacy integration, with official support extended through the WCF Client libraries up to version 8.0 (released December 13, 2023) and 4.10 (released August 17, 2022), both scheduled for end of support on November 10, 2026, under the Modern Lifecycle policy. These client libraries enable communication with WCF or CoreWCF services and are compatible with .NET 9, .NET 8, and .NET Framework 4.6.2 or later, as well as .NET Standard 2.0. Server-side capabilities are no longer natively supported in modern .NET versions beyond .NET Core 3.1; instead, they rely on the community-maintained CoreWCF project, which ports WCF services to modern .NET platforms including .NET 6 through .NET 9 (with testing for .NET 10) for self-hosted scenarios. positions WCF as suitable only for maintaining existing SOAP-based applications, explicitly recommending against its use for new development in favor of more contemporary frameworks. updates for WCF in .NET Framework environments will persist until the respective OS reaches end of support. Community and third-party initiatives sustain WCF's viability through open-source efforts, notably the dotnet/wcf repository for client libraries and the CoreWCF project under the .NET Foundation, both hosted on with active contributions for compatibility with evolving .NET releases. CoreWCF, in particular, facilitates ongoing maintenance and partial feature parity for server-side WCF in .NET 8 and .NET 9, with community forks and extensions addressing compatibility for anticipated versions like .NET 10. These efforts ensure that legacy WCF-dependent systems in compliance-heavy domains can receive updates without full rewrites, though provides no direct support for CoreWCF itself.

Alternatives and Migration

As Windows Communication Foundation (WCF) support has transitioned, developers have increasingly adopted modern .NET frameworks for building service-oriented applications, particularly those emphasizing performance, scalability, and cross-platform compatibility. Primary alternatives include Web API for RESTful services and architectures, which leverage HTTP/1.1 or for lightweight, stateless communication, and for high-performance remote procedure calls using over HTTP/2. For real-time bidirectional communication, provides a robust option with support for WebSockets, , and long polling, enabling push notifications and live updates without the overhead of WCF's duplex bindings. In messaging scenarios, MassTransit serves as an open-source distributed application framework that integrates with brokers like RabbitMQ or Service Bus, offering sagas, routing, and pub-sub patterns as a more flexible replacement for WCF's MSMQ or NetNamedPipe bindings. Migration from legacy WCF applications to contemporary .NET technologies typically involves assessing the service contracts, bindings, and endpoints to map them to equivalent modern constructs. For gradual transitions preserving interoperability, CoreWCF—an open-source implementation of WCF for .NET Core and later—allows porting server-side WCF services to .NET 6 or higher with minimal changes, supporting a subset of WCF features like basicHttpBinding and wsHttpBinding while requiring updates for unsupported elements such as transactions or security contexts. Converting to involves defining services in .proto files, generating strongly typed clients and servers, and refactoring operations to use unary, server-streaming, or bidirectional streaming calls, which can reduce payload sizes by up to 50% compared to SOAP XML in benchmarks for similar workloads. For REST-based refactoring, applications can shift to minimal APIs in .NET 8 and later, where service methods become controller actions or endpoint handlers, often using OpenAPI (Swagger) for documentation and client generation. Several tools facilitate the migration process by automating code analysis and transformation. The .NET Upgrade Assistant, a command-line tool from , scans WCF projects on .NET Framework, identifies dependencies, and generates a CoreWCF-compatible .NET 6+ project structure, handling configuration files and service host upgrades while flagging manual interventions for custom behaviors. For SOAP-to-REST conversions, third-party utilities like those in Visual Studio's refactoring extensions can assist in extracting contracts to controllers, though comprehensive testing is essential. Sessions and transactions in WCF can be migrated using Core for data persistence and resilience patterns like the Outbox pattern to ensure atomicity without WCF's built-in support. Best practices for emphasize a phased approach to minimize disruption. Begin by inventorying dependencies, such as WS-* policies, and mapping them to OpenAPI specifications or metadata for equivalent security and reliability; for instance, can transition to JWT tokens in middleware. Thorough testing with existing clients is crucial, using tools like Postman or gRPCurl to validate payloads and error handling. Custom channels or bindings in WCF should be phased out in favor of standard or cloud messaging, with incremental deployment via gateways to support hybrid environments during transition. Looking ahead, the emphasis in .NET ecosystems is on cloud-native architectures that supersede traditional WCF hosting models like IIS or Windows Services. Azure Service Fabric enables reliable microservices orchestration with built-in state management, while containerization using Docker and Kubernetes facilitates scalable deployments of refactored services, integrating seamlessly with Azure Functions for serverless endpoints or Azure Container Instances for lift-and-shift scenarios. This shift supports modern practices, reducing operational complexity and enabling auto-scaling in response to demand.

References

  1. [1]
    What Is Windows Communication Foundation - WCF - Microsoft Learn
    Aug 9, 2023 · Windows Communication Foundation (WCF) is a framework for building service-oriented applications. Using WCF, you can send data as asynchronous messages from ...gRPC as an alternative to WCF · Features of WCF
  2. [2]
    Microsoft .NET Framework - Microsoft Lifecycle
    Releases ;.NET Framework 4.0, Apr 12, 2010, Jan 12, 2016 ;.NET Framework 3.5 Service Pack 1, Nov 19, 2007, Jan 9, 2029 ;.NET Framework 3.0, Nov 21, 2006, Jul 12 ...
  3. [3]
    Fundamental Windows Communication Foundation Concepts - WCF
    Sep 15, 2021 · WCF is a runtime and a set of APIs for creating systems that send messages between services and clients.
  4. [4]
    Windows Communication Foundation Architecture - WCF
    Sep 15, 2021 · Learn about the major layers of the Windows Communication Foundation architecture, including contracts, service runtime, messaging, ...
  5. [5]
    Microsoft Open-Sources The Windows Communication Foundation
    May 20, 2015 · Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience.
  6. [6]
    The official WCF Client support policy - NET - Microsoft
    Mar 6, 2025 · Last updated: March 6, 2025. Microsoft Support for WCF Client. Every Microsoft product has a lifecycle, including WCF Client.Microsoft Support For Wcf... · Release Support Details · Out Of Support Versions
  7. [7]
    The official CoreWCF support policy | .NET
    Sep 16, 2025 · Last updated: September 16, 2025. Microsoft Support for CoreWCF. CoreWCF is a port of Windows Communication Foundation (WCF) to .NET and .Missing: deprecation | Show results with:deprecation
  8. [8]
    Windows Communication Foundation and Data Services - Visual ...
    Jul 4, 2025 · Windows Communication Foundation (WCF) is a unified framework for creating secure, reliable, transacted, and interoperable distributed ...<|control11|><|separator|>
  9. [9]
    Learn The ABCs Of Programming Windows Communication ...
    Oct 7, 2019 · WCF unifies the existing suite of .NET distributed technologies into a single programming model that improves the overall developer experience ...
  10. [10]
    Transports in Windows Communication Foundation - WCF
    Sep 15, 2021 · The main transports used in Windows Communication Foundation (WCF) are HTTP, HTTPS, TCP, and named pipes.Missing: asynchronous exchange patterns
  11. [11]
    Choosing a Message Exchange Pattern - WCF - Microsoft Learn
    Sep 15, 2021 · The first step in writing a custom transport is to decide which message exchange patterns (or MEPs) are required for the channel you are developing.Six Message Exchange... · Sessions And Sessionful... · Writing Sessionful ChannelsMissing: asynchronous HTTP pipes<|control11|><|separator|>
  12. [12]
    Endpoints: Addresses, Bindings, and Contracts - WCF
    Sep 15, 2021 · Endpoints provide clients access to the functionality offered by a WCF service. Each endpoint consists of four properties.
  13. [13]
    Microsoft Details Next Wave of Software Innovation to Developers at ...
    Oct 27, 2003 · 27, 2003 – Today Bill Gates, chairman and chief software architect of Microsoft Corp., outlined Microsoft's vision for the next wave of software ...Missing: project | Show results with:project
  14. [14]
    NET Framework 3.0 RTM Posted - InfoQ
    Nov 7, 2006 · The RTM version of .NET 3.0 is available. This includes the redistributables and SDK for the Windows Communication Foundation (WCF), ...Missing: initial WinFX
  15. [15]
    REST-Based Ajax Services with WCF in .NET 3.5 - CODE Magazine
    Apr 1, 2008 · In .NET 3.5, Microsoft has introduced a number of features that make it easier to create WCF services that are directly accessible over HTTP using REST ( ...
  16. [16]
    Simplified Configuration for WCF Services - Microsoft Learn
    Jul 29, 2022 · The ConfigSimplificationIn40 sample demonstrates how to implement and configure a typical service and client using Windows Communication Foundation (WCF).
  17. [17]
    What's New in Windows Communication Foundation 4.5 - WCF
    Aug 27, 2022 · This article describes the features new to Windows Communication Foundation (WCF) version 4.5 and links to additional resources.
  18. [18]
    WCF Client is Open Source -.NET Foundation
    May 20, 2015 · WCF targets the .NET Core framework which is designed to support multiple computer architectures and to run cross-platform. Right now the WCF ...Missing: 2012 Apache License
  19. [19]
    Supporting the community with WF and WCF OSS projects - .NET Blog
    Jun 7, 2019 · Core WCF is a new community owned project under the .NET Foundation. Microsoft has made an initial contribution of code from a WCF team member ...
  20. [20]
    Supporting development of Core WCF | AWS Open Source Blog
    Jul 28, 2021 · WCF is a popular framework supporting many service-based use cases, including processing business transactions, reporting, monitoring, exposing ...
  21. [21]
    Channel Model Overview - WCF - Microsoft Learn
    Sep 15, 2021 · The Windows Communication Foundation (WCF) channel stack is a layered communication stack with one or more channels that process messages.
  22. [22]
    Specifying an Endpoint Address - WCF - Microsoft Learn
    Sep 15, 2021 · Each ServiceEndpoint contains an Address, a Binding, and a Contract. The contract specifies which operations are available.Missing: ABC | Show results with:ABC
  23. [23]
  24. [24]
    Designing Service Contracts - WCF - Microsoft Learn
    Nov 17, 2022 · Learn about service contracts, including how to create them, available operations and data types, and other aspects of service contracts in ...Creating a Service Contract · Classes or Interfaces
  25. [25]
    Using Data Contracts - WCF | Microsoft Learn
    Sep 15, 2021 · Learn about a data contract, which defines, for each parameter or return type, what data is serialized to be exchanged between a WCF client ...
  26. [26]
    Using Message Contracts - WCF | Microsoft Learn
    Sep 15, 2021 · This topic discusses how to use the various message contract attributes to create a specific message contract for your operation.
  27. [27]
    Configuring and Extending the Runtime with Behaviors - WCF
    Nov 6, 2021 · Behaviors enable you to modify default behavior and add custom extensions that inspect and validate service configuration or modify runtime behavior.
  28. [28]
    Behaviors - WCF - Microsoft Learn
    Sep 15, 2021 · This section contains samples that demonstrate Windows Communication Foundation (WCF) service behaviors. In This Section. Concurrency ...
  29. [29]
    Concurrency - WCF
    ### Summary of Concurrency Behavior in WCF
  30. [30]
    Instancing - WCF
    ### Summary of Instancing Behavior in WCF
  31. [31]
    Throttling - WCF
    ### Summary of Throttling Behavior in WCF
  32. [32]
    Specifying and Handling Faults in Contracts and Services - WCF
    Sep 15, 2021 · The topics in this section discuss how to design contracts to expose error conditions as custom SOAP faults, how to return such faults as part of service ...
  33. [33]
    Using Sessions - WCF | Microsoft Learn
    Nov 6, 2021 · A session correlates a group of messages into a conversation. WCF sessions are different than the session object available in ASP.NET applications.<|control11|><|separator|>
  34. [34]
    Define a Windows Communication Foundation service contract - WCF
    Sep 15, 2021 · For each interface, you must apply the ServiceContractAttribute attribute. For each operation/method, you must apply the ...
  35. [35]
  36. [36]
  37. [37]
    Implementing Service Contracts - WCF - Microsoft Learn
    Sep 15, 2021 · To create a service, write a class that implements a Windows Communication Foundation (WCF) contract. You can do this in one of two ways.
  38. [38]
    Designing and Implementing Services - WCF | Microsoft Learn
    Sep 15, 2021 · This section shows you how to define and implement WCF contracts. A service contract specifies what an endpoint communicates to the outside world.
  39. [39]
  40. [40]
  41. [41]
  42. [42]
    How to: Declare Faults in Service Contracts - WCF - Microsoft Learn
    Sep 15, 2021 · Service contracts specify what error information is returned to clients by declaring SOAP faults in the service contract.
  43. [43]
  44. [44]
    How to: Create a Duplex Contract - WCF | Microsoft Learn
    Sep 14, 2021 · A duplex contract allows clients and servers to communicate with each other independently so that either can initiate calls to the other.
  45. [45]
    ServiceModel Metadata Utility Tool (Svcutil.exe) - Microsoft Learn
    Nov 6, 2021 · The ServiceModel Metadata Utility tool is used to generate service model code from metadata documents, and metadata documents from service model code.
  46. [46]
    Accessing Services Using a WCF Client - Microsoft Learn
    Mar 21, 2023 · The WCF client proxy can be generated manually by using the Service Model Metadata Utility Tool (SvcUtil.exe) for more information see, ...Missing: docs | Show results with:docs
  47. [47]
    WCF Client Overview - Microsoft Learn
    Sep 15, 2021 · Learn about what client applications do, how to configure, create, and use a WCF client, and how to secure client applications.Missing: side | Show results with:side
  48. [48]
    How to: Use the ChannelFactory - WCF - Microsoft Learn
    Sep 15, 2021 · Learn how to create a channel factory to create more than one channel for accessing services by using a WCF client.
  49. [49]
    Channel Factory - WCF - Microsoft Learn
    Sep 15, 2021 · The ChannelFactory sample demonstrates how a client application can create a channel with the ChannelFactory class instead of a generated client.
  50. [50]
    Synchronous and Asynchronous Operations - WCF - Microsoft Learn
    Sep 15, 2021 · This topic discusses implementing and calling asynchronous service operations. Many applications call methods asynchronously because it enables the application ...Implementing An Asynchronous... · Iasyncresult Asynchronous... · Client-Side Asynchronous...Missing: transport TCP pipes
  51. [51]
    How to: Access services with a duplex contract - WCF | Microsoft Learn
    Sep 15, 2021 · This topic shows the steps to create a WCF client in a client class that implements the callback interface.Missing: side docs
  52. [52]
    Sending and Receiving Faults - WCF - Microsoft Learn
    Sep 15, 2021 · This topic discusses how a service or duplex client can send those faults when the corresponding error condition has occurred and how a client or service ...Sending Soap Faults · Handling Faults · Handle Exceptions When...
  53. [53]
    WCF Error Handling - Microsoft Learn
    Sep 15, 2021 · Communication errors occur when a network is unavailable, a client uses an incorrect address, or the service host is not listening for incoming ...Missing: docs | Show results with:docs
  54. [54]
    Client Configuration - WCF - Microsoft Learn
    Aug 16, 2022 · You can use the Windows Communication Foundation (WCF) client configuration to specify the address, binding, behavior, and contract, the "ABC" properties of ...
  55. [55]
    Hosting Services - WCF - Microsoft Learn
    WCF services can be hosted in managed applications, as managed Windows services, in IIS, or in Windows Process Activation Service (WAS).
  56. [56]
    How to: Host a WCF Service in a Managed Application - WCF
    ### Summary of Self-Hosting a WCF Service in a Managed Application
  57. [57]
    How to: Host a WCF Service in IIS - WCF - Microsoft Learn
    Jun 8, 2024 · This topic outlines the basic steps required to create a Windows Communication Foundation (WCF) service that is hosted in Internet Information Services (IIS).
  58. [58]
    Hosting in Internet Information Services - WCF - Microsoft Learn
    Sep 15, 2021 · WCF services can be hosted in IIS, similar to ASP.NET, with benefits like process activation and shared hosting. IIS 5.1 and 6.0 are limited to ...
  59. [59]
    Hosting in Windows Process Activation Service - WCF
    Sep 15, 2021 · The Windows Process Activation Service (WAS) manages the activation and lifetime of the worker processes that contain applications that host Windows ...
  60. [60]
    How to: Host a WCF Service in a Managed Windows Service - WCF
    Sep 15, 2021 · This topic outlines the basic steps required to create a Windows Communication Foundation (WCF) service that is hosted by a Windows Service.
  61. [61]
    Configuring Services Using Configuration Files - WCF
    Sep 15, 2021 · Learn how a configuration file for a WCF service gives you the flexibility of providing endpoint and service behavior data during ...<|control11|><|separator|>
  62. [62]
    WCF Configuration Schema - .NET Framework - Microsoft Learn
    Sep 15, 2021 · Windows Communication Foundation (WCF) configuration elements enable you to configure WCF service and client applications.
  63. [63]
    Configuring WCF services - Microsoft Learn
    Sep 15, 2021 · A Windows Communication Foundation (WCF) service is configurable using the .NET Framework configuration technology.
  64. [64]
    Custom Binding Imperative - WCF - Microsoft Learn
    Sep 15, 2021 · The Imperative sample demonstrates how to write imperative code to define and use custom bindings without using a configuration file or a ...
  65. [65]
    Simplified Configuration - WCF - Microsoft Learn
    Learn about simplified configuration for WCF services. .NET Framework 4.6.1 provides a way to reduce the size and complexity of service configuration.Missing: per- | Show results with:per-
  66. [66]
    Administration and Diagnostics - WCF - Microsoft Learn
    Nov 6, 2021 · WCF diagnostics include end-to-end tracing, message logging, event tracing, performance counters, and WMI for monitoring and troubleshooting.
  67. [67]
    Configuring Tracing - WCF - Microsoft Learn
    Nov 6, 2021 · This topic describes how you can enable tracing, configure trace sources to emit traces and set trace levels, set activity tracing and propagation.Enabling Tracing · Configuring Trace Sources to...
  68. [68]
    Analytic Tracing with ETW - WCF - Microsoft Learn
    Sep 15, 2021 · Windows Communication Foundation (WCF) analytic tracing offers a way to capture diagnostic information during the execution of a WCF service.
  69. [69]
    Windows Communication Foundation Tools - WCF - Microsoft Learn
    Sep 15, 2021 · Configuration Editor Tool (SvcConfigEditor.exe), Creates and modifies configuration settings for WCF services. Service Trace Viewer Tool ...
  70. [70]
    Service Trace Viewer Tool (SvcTraceViewer.exe) - WCF
    Jul 29, 2022 · Service Trace Viewer provides a way to easily merge, view, and filter trace messages in the log so that you can diagnose, repair, and verify WCF service issues.
  71. [71]
    Securing Services - WCF | Microsoft Learn
    Mar 29, 2023 · Security of a Windows Communication Foundation (WCF) service consists of two primary requirements: transfer security and authorization.Security Basics · Windows Security Mechanisms
  72. [72]
    Transport Security with Certificate Authentication - WCF
    Sep 15, 2021 · This article discusses using X.509 certificates for server and client authentication when using transport security.
  73. [73]
    How to: Authenticate with a User Name and Password - WCF
    Sep 15, 2021 · This topic demonstrates how to enable a Windows Communication Foundation (WCF) service to authenticate a client with a Windows domain username and password.
  74. [74]
    Federation and Issued Tokens - WCF | Microsoft Learn
    Sep 15, 2021 · With Windows Communication Foundation (WCF), you can create clients that communicate securely with services that implement the WS-Federation and WS-Trust ...
  75. [75]
    How to: Create a Custom Authorization Manager for a Service - WCF
    Sep 15, 2021 · To create a custom authorization manager, create a class that derives from ServiceAuthorizationManager and implement CheckAccessCore method.
  76. [76]
    Security Overview - WCF | Microsoft Learn
    Nov 10, 2021 · COM has a comprehensive security mechanism whereby security context can be flowed between components; this mechanism enforces integrity, ...
  77. [77]
    How to: Set the Security Mode - WCF | Microsoft Learn
    Sep 15, 2021 · Learn how to set the three common WCF security modes on most predefined bindings: Transport, Message, and TransportWithMessageCredential.
  78. [78]
    Bindings and Security - WCF - Microsoft Learn
    Sep 15, 2021 · WCF bindings have default security, with Transport, Message, and TransportWithMessageCredential modes. BasicHttp and WSHttp bindings support ...
  79. [79]
    System-provided bindings - WCF | Microsoft Learn
    Sep 15, 2021 · Bindings specify the communication mechanism to use when talking to an endpoint and indicate how to connect to an endpoint.<|control11|><|separator|>
  80. [80]
    Understanding Protection Level - WCF - Microsoft Learn
    Sep 15, 2021 · The ProtectionLevel is a way for the developer to set the minimum level that a binding must comply with. When a service is deployed, the actual ...Basics · Scoping
  81. [81]
    How to: Set the ProtectionLevel Property - WCF - Microsoft Learn
    Sep 15, 2021 · You can set the protection level by applying an appropriate attribute and setting the property. You can set protection at the service level to affect all parts ...
  82. [82]
    Managing Claims and Authorization with the Identity Model - WCF
    Windows Communication Foundation (WCF) supports two mechanisms for performing authorization processing. The first mechanism enables you to control ...<|control11|><|separator|>
  83. [83]
    Claims-Based Authorization with WIF - Microsoft Learn
    WIF is a rich identity model framework designed for building claims-based applications and services and for supporting active and passive federated security ...
  84. [84]
    Web Services Protocols Supported by System-Provided ...
    Sep 15, 2021 · Windows Communication Foundation (WCF) is built to interoperate with Web services that support a set of specifications known as Web services ...Missing: WebHttpBinding | Show results with:WebHttpBinding
  85. [85]
    Web services protocols interoperability guide - WCF - Microsoft Learn
    Sep 15, 2021 · Interoperability for application protocols is accomplished through XML Schema description language 1.0 (XSD) and Web Services Description ...
  86. [86]
    HTTP Programming with WCF and the .NET Framework 3.5
    This article explains some of the new Web-centric features of WCF in the .NET Framework 3.5. It starts with a level-setting discussion about some of the ...Missing: enhancements | Show results with:enhancements
  87. [87]
    Messaging Protocols - WCF - Microsoft Learn
    The Windows Communication Foundation (WCF) channel stack employs encoding and transport channels to transform internal message representation into its wire ...Ws-Addressing · Soap Message Transmission... · Mtom Message EncodingMissing: asynchronous TCP pipes
  88. [88]
    User's Guide - Apache Axis
    SOAP is an XML-based communication protocol and encoding format for inter-application communication. Originally conceived by Microsoft and Userland software, it ...
  89. [89]
    Client-Side Axis
    Client-side Axis uses JAX-RPC, built on SOAP/HTTP, to develop web service clients. It can generate proxy classes from WSDL, and supports client-side handlers.
  90. [90]
    WCF Web HTTP Programming Model Overview - Microsoft Learn
    Sep 15, 2021 · The WebGetAttribute and the WebInvokeAttribute allow you to control how individual operations get bound to URIs and the HTTP methods associated ...Uri Processing With... · Webget And Webinvoke... · Uritemplate Query String...Missing: RESTful | Show results with:RESTful
  91. [91]
    Service Station - An Introduction To RESTful Services With WCF
    This is the first in a series of columns about building Windows Communication Foundation (WCF) services using the architectural style known as Representational ...Missing: date | Show results with:date
  92. [92]
    3 Interoperability with Microsoft WCF/.NET
    This chapter describes the interoperability testing performed, in conjunction with Microsoft, to ensure that WebLogic Web services can access and consume ...Missing: EE | Show results with:EE
  93. [93]
    Integrating with COM+ Applications - WCF - Microsoft Learn
    Sep 15, 2021 · Gives an overview of when and how to integrate COM+ components. ... Explains how to use the COM+ Service Model Configuration command-line tool ( ...
  94. [94]
    Data Contract Known Types - WCF | Microsoft Learn
    Sep 15, 2021 · Learn how the data contract model uses the KnownTypeAttribute class to specify the types to include during deserialization in WCF.
  95. [95]
    Enumeration Types in Data Contracts - WCF - Microsoft Learn
    Sep 15, 2021 · Enumerations can be expressed in the data contract model. This topic walks through several examples that explain the programming model.Missing: mismatches | Show results with:mismatches
  96. [96]
    NET Framework official support policy
    Aug 18, 2025 · Support for .NET Framework versions 4.5.2, 4.6, and 4.6.1 ended on April 26, 2022, so security fixes, updates, and technical support for these versions will no ...
  97. [97]
  98. [98]
    Upgrade WCF Server-side Project to CoreWCF - .NET Core
    Oct 15, 2024 · Use .NET Upgrade Assistant to upgrade an existing WCF Server-side project on .NET Framework to use CoreWCF services on .NET 6 or later.
  99. [99]
    Why migrate WCF to ASP.NET Core gRPC - Microsoft Learn
    Jul 30, 2025 · CoreWCF is a community effort to bring support for hosting WCF services to .NET. CoreWCF only supports a subset of WCF's features, and .NET ...Missing: Extensions. | Show results with:Extensions.<|separator|>
  100. [100]
    dotnet/wcf - GitHub
    This repo contains the client-oriented WCF libraries that enable applications built on .NET Core to communicate with WCF services.
  101. [101]
    Main repository for the Core WCF project - GitHub
    The goal of this project is to enable existing WCF services to move to .NET Core. Package Status. The latest released packages can be found at NuGet.org: ...Issues 335 · Pull requests 30 · Discussions · Wiki
  102. [102]
    MassTransit · MassTransit
    MassTransit is the trusted messaging framework powering mission-critical applications in more than 100 countries across industries like finance, government, ...Announcing MassTransit v9 · Documentation · Commercial Support · Quick StartsMissing: alternative WCF
  103. [103]
    Bring WCF apps to the latest .NET with CoreWCF and Upgrade ...
    Nov 4, 2022 · The Upgrade Assistant can now migrate .NET Framework projects using WCF to .NET 6 or later versions with CoreWCF.