How to configure WMI service on application servers for HostNameMemory affinity provider

Published on February 16, 2009 by wonyoo

Updated on November 05, 2009 by wonyoo

Average Rating  Rate It (2)

RSS

Overview

In ARR Version 1, there are two host name affinity providers:

  1. Microsoft.Web.Arr.HostNameRoundRobin
  2. Microsoft.Web.Arr.HostNameMemory

Microsoft.Web.Arr.HostNameRoundRobin provider does not have any dependency on the application servers.  When this provider is used, ARR simply allocates and affinitizes host names in a round robin fashion.

However, Microsoft.Web.Arr.HostNameMemory provider requires certain permissions to be granted on the application servers so that ARR server is able to query the necessary memory relation performance counters to compute where to affinitize the host names.

This walk through is designed to guide the reader the changes that are needed on the application servers when Microsoft.Web.Arr.HostNameMemory provider is used.

Note: The host name affinity providers are applicable only when ARR is configured to be used for shared hosting scenarios.

Goal

Successfully configure ARR and the application servers in the server farm to use Microsoft.Web.Arr.HostNameMemory provider.

Prerequisites

This walkthrough requires the following prerequisites:

  • IIS 7.0 on Windows 2008 (any SKU) or newer.
  • Microsoft Application Request Routing Version 1 and dependent modules.
  • ARR is configured for shared hosting scenarios.

If the Application Request Routing Version 1 has not been installed, download it at:

  • Download Microsoft Application Request Routing Version 1 for IIS 7 (x86) here.
  • Download Microsoft Application Request Routing Version 1 for IIS 7 (x64) here.

Follow the steps outlined in this document to install Application Request Routing. 

Note

The following steps are to be performed on all the application servers in the server farm.  More explicitly, these changes are not needed on the ARR server(s).

Step 1 - Enable COM Security

  1. Open a command prompt as an administrator.
  2. Type dcomcnfg.
  3. Navigate to Component Services -> Computers -> My Computer.
  4. Right click on My Computer and select Properties:
  5. Select COM Security tab:
  6. Under Launch and Activate Permissions, select Edit Limits.  Add the account of the worker process where ARR uses and allow:
      • Local Launch
      • Remote Launch
      • Remote Activation

  7. Click on OK to save the changes.

Step 2 - Add user to Performance Monitor Users group

  1. Open a command prompt as an administrator.
  2. Type compmgmt.
  3. Navigate to Computer Management -> System Tools -> Local Users and Groups -> Groups:
  4. Select Performance Monitor Users group and add account of the worker process that ARR uses:
  5. Click on OK to save the changes.

Step 3 - WMI Control

  1. On the same Computer Management console, navigate to Services and Applications and select WMI Control:
  2. Right click on WMI Control and select Properties.   Select Security tab:
  3. Navigate to Root -> CIMV2 and select CIMV2:
  4. Click on Security and add account of the worker process that ARR uses.  Allow the following permissions:
    • Execute Methods
    • Enable Account
    • Remote Enable

  5. Click on OK to save the changes.

Step 4 - Test configuration on ARR

  1. After making the configuration changes on all application servers in the server farm (steps 1 through 3), test the configuration on ARR server.
  2. Open IIS Manager.
  3. Select the server farm that is configured for host name affinity.
  4. Select Server Affinity icon.
  5. Select Microsoft.Web.Arr.HostNameMemory provider under Host name affinity provider and select Apply:
  6. Note that the Test... button appears only after the change is applied.  This is because the test must impersonate the identity of the worker process.  Ensure that the test passes:

 

Related Content

Comments

  1. Submitted on Sep 15 2009 by
    maxaspsteve
    I am trying to implement this in my ARR environment, however, I am running into a problem. In the instructions above it says to "add account of the worker process that ARR uses", but in the screenshots it shows ARR$ (the ARR machine account). I have tried this but I have not had any luck getting it to work. The Default App Pool's on my ARR boxes run as ApplicationPoolIdentity, not sure how to assign permissions for that on a remote machine. I suppose I could have the pools run as a domain user, but if I do that do I still have to give permissions for the machine account as well?
  2. Submitted on Sep 15 2009 by
    maxaspsteve
    *Update*

    I set the app pool to run as a domain account, and add the necessary permissions, still no dice. I can see the successful authentication on the web servers (both for the domain account and for the machine account), but the test just runs forever and never comes back successful (also HTTP requests fail at the ARR level). Any one have an idea?
  3. Submitted on Sep 16 2009 by
    maxaspsteve
    *One More Update*

    So now the requests don't fail (ARR operates as it should), but the tests never complete...weird
  4. Submitted on Sep 28 2009 by
    maxaspsteve
    *Last Update*

    I installed the new ARR version (v2_RC) and all test complete as expected with the same configuration on the Web servers.

You must Log In to comment.