Web Farm Framework and proxy servers

While setting up a Web Farm Framework environment recently, I ran across an issue where the Platform Provisioning piece of the UI was failing to pull the products feed down. In my case, the error was:

 

InternetOpenUrl returned 0x80072EE7: Unknown error 12007.

 

In other cases, the issue can manifest itself with this error:

 

InternetOpenUrl returned 0x80072EFD: Unknown error 12029.

 

Both of these can occur when the WFF controller is behind a proxy server. Even if the logged on user who’s setting this up can get to the feed (http://www.microsoft.com/web/webpi/3.0/WebproductList.xml) directly in IE, that doesn’t mean that WFF will be able to. When you open the Platform Provisioning section, it’s actually the Web Farm Controller Service (WebFarmService) that’s making the HTTP call behind the scenes, so the call is made in the context of the service account, which in this case is Local System. If you don’t have a proxy set for that account, or for all users on the system, you could encounter one of the errors above.

Now, there are a couple of ways around this. You could set proxy settings for Local System in the registry or through GPO, or you could just set them system wide in the default registry hive. One easier alternative that worked in my test lab, and one I like a whole lot better, is to set the proxy in a config file for the service. By default, WFF is installed in the “C:\Program Files\IIS\Microsoft Web Farm Framework” folder. In this directory, create a file named WebFarmService.exe.config, and populate it with the System.Net defaultProxy settings:

 

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

  <system.net>

    <defaultProxy>

      <proxy

        proxyaddress="http://proxyserver:port"

        bypassonlocal="true"

      />

    </defaultProxy>

  </system.net>

</configuration>

 

Replace the proxyaddress value with the IP/FQDN of your proxy along with the port. Once you save your changes, be sure to restart the Web Farm Controller Service so it picks up the config file. At this point, give the Platform Provisioning section another shot!

2 Comments

Comments have been disabled for this content.