In IIS 7.0, WAS supports non-HTTP protocols, enabling you to use IIS
to host non-HTTP–based applications and services. The WAS process model
generalizes the process model for the HTTP server by removing the
dependency on HTTP. Because WAS manages application pool configuration
and worker processes in IIS 7.0, the same configuration and process
model that is used for HTTP can be used for non-HTTP applications. All
IIS process management features, such as on-demand activation, process
health monitoring, enterprise-class manageability, and rapid failure
protection, are available to non-HTTP–based applications and services in
IIS 7.0.
To support services and applications
that use protocols other than HTTP and HTTPS, you can use technologies
such as Windows Communication Foundation (WCF). The WAS process model
enables WCF-based applications and services to use both HTTP and
non-HTTP protocols in a hosting environment that supports message-based
activation and offers the ability to host a large number of applications
on a single machine. Windows Communication Foundation ships with
protocol adapters that can leverage the capabilities of the WAS,
improving the reliability and resource use of WCF services.
WAS is capable of receiving requests or
messages over any protocol, and it supports pluggable activation of
arbitrary protocol listeners. Protocol listeners receive
protocol-specific requests, send them to IIS for processing, and then
return responses to requestors. With WCF, a listener adapter includes
the functionality of a protocol listener. Figure 1 shows WAS with listener adapters for non-HTTP protocols.
Listener
adapters are Windows services that receive messages on specific network
protocols and communicate with WAS to route incoming requests to the
correct worker process. The listener adapter interface is used to
communicate activation requests that are received over the supported
non-HTTP protocols. There are several non-HTTP listener adapters, as
follows:
-
NetTcpActivator for TCP protocol
-
NetPipeActivator for Named Pipes
-
NetMsmqActivator for Message Queuing (also known as MSMQ)
If you do not need HTTP functionality, you
can actually run WAS without W3SVC. For example, you can manage a Web
service through a WCF listener adapter, such as NetTcpActivator, without
running W3SVC if you do not need to listen for HTTP requests in
HTTP.sys.
The global IIS configuration store,
applicationHost.config, can contain configuration for non-HTTP
protocols. For example, a TCP listener adapter, NetTcpActivator, can be
configured based on information that WAS reads from configuration store.
After NetTcpActivator is configured, it listens for requests that use
the TCP protocol. When a listener adapter receives a request, WAS starts
a worker process so that the listener adapter can pass the request to
it for processing. This architecture is shown in Figure 2.
Because WAS manages processes for both
HTTP and non-HTTP protocols, you can run applications with different
protocols in the same application pool. For example, you can host an
application over both HTTP and TCP protocols.
In addition to being protocol
independent, the WAS process model in IIS 7.0 provides all types of
message-activated applications with intelligent resource management,
on-demand process activation, health-monitoring, and automatic failure
detection and recycling. It allows these applications to take advantage
of the IIS process model without requiring the deployment footprint of a
full IIS installation.