Endpoints and Behaviors for Tagless Services

A tagless service is a service that has no corresponding <service> tag in the Web.config file associated with the service. Windows Server AppFabric and the .NET Framework version 4 add the following endpoints and service behaviors to tagless services automatically.

Endpoints

AppFabric automatically adds two types of endpoints to tagless services: system endpoints and default application endpoints.

System Endpoints

A system endpoint is an endpoint that the AppFabric system adds to the service automatically. System endpoint types are defined in the endpointExtensions section in the machine.config file (for example, discoveryEndpoint). However there is an exception to this rule for workflowControlEndpoint and serviceMetadataEndpoint. The first endpoint is added to the service when you select the Enable instance control option on the Workflow Host Management tab of the Configure Service dialog box and the second endpoint is added when you select the Enable metadata over HTTP option on the General tab of the Configure Service dialog box. You can also enable instance control by using the Set-ASInstanceManagement cmdlet and enable metadata access over HTTP by using the Set-ASAppServiceMetadata cmdlet.

Default Application Endpoints

A default application endpoint is the endpoint that is added to the application based on the protocols supported on the application. The .NET Framework 4 adds an application default endpoint for all tagless services in a Web application for each protocol enabled on the application. For example, if the HTTP protocol is enabled for an application, an endpoint with basicHttpBinding is added to the service and if the net.pipe protocol is enabled for an application, an endpoint with netNamedPipeBinding is added to the service. To view protocols enabled for an application, right-click the name of the application in IIS Manager, point to Manage Application, and then click Advanced Settings.

Service Behaviors

The .NET Framework 4 applies all the nameless behaviors (<behavior name=””>) it can find by walking up the IIS configuration hierarchy and merging the behaviors to tagless services. For example, if you have defined a nameless behavior at the Web site level and defined another one in the root Web.config file, the two nameless behaviors (one defined at the root level and the other at the Web site level) are merged together and the resultant behavior is applied to the tagless service at run time.

When you install and configure AppFabric, a nameless behavior is written to the root Web.config file (the Web.config file in <Windows directory>\Microsoft .NET\Framework\v4.xxx\Config). The following configuration fragment is from a sample root Web.config file:

<behavior name="">
    <workflowIdle timeToUnload="00:01:00" timeToPersist="infinite" />
    <workflowInstanceManagement authorizedWindowsGroup="AS_Administrators" />
    <etwTracking profileName="HealthMonitoring Tracking Profile" />
    <sqlWorkflowInstanceStore connectionStringName="ApplicationServerWorkflowInstanceStoreConnectionString" hostLockRenewalPeriod="00:00:20" runnableInstancesDetectionPeriod="00:00:10" instanceEncodingOption="GZip" instanceCompletionAction="DeleteAll" instanceLockedExceptionAction="BasicRetry" />
</behavior>