I was working with a client this week on an TFS 2008 upgrade from RTM to SP1. During the upgrade we encountered an error (below) “Failed to call WMI on the RS server”. This error indicated that there was a problem accessing the SQL Server Reporting Services system.
08/13/08 11:13:18 DDSet_Error: *** ERROR: Failed to call WMI on the RS server. The most likely cause is that the setup user does not have the required permissions: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
08/13/08 11:13:18 DDSet_Status: Process exited with exit code: 15
A bit of searching online brought up this blog post which seemed to indicate that SP1 couldn’t resolve the entry found in TFS’ TfsIntegration..tbl_service_interface table for the ReportsService record. The solution provided in the article allowed us to finish the SP1 installation but it seemed like a risky endeavor, so I wanted to get a second opinion on what actually happened and a “safer” way to get around the issue.
In all fairness, I need to also state that this client had configured a “friendly” name for the server by configuring a DNS HOST (A) record called TFS-Q (for their QA TFS instance) instead of using the machine name ( which is much longer and not very user friendly).
I asked a colleague at Microsoft what the issue could be and was given this response:
“One possible explanation for this failure to access WMI data remotely is that a firewall is blocking that traffic. If the friendly name were actually represented as TFS-Q.somedomain.com, as is the form in the referenced blog post, that could drive traffic that would otherwise be local through a proxy server. An address with ‘.’s in it would not be considered a local address when interpreting the setting that determines whether to bypass a proxy server for local addresses. The traffic would then leave the box, which would mean that you would need the DCOM port open (TCP 135).”
From what I know about this client’s network configuration and this installation, I suspect that this is exactly what happened. The entry was a fully-qualified domain name which forced the traffic through a proxy server as a non-local address and then it was blocked from coming back in by a firewall. When we changed the database record (by hand) to the netbios name of the machine it became a local address and avoided the proxy server and firewall thus completing successfully.
To my question about a “safer” workaround, he responded:
“You could have avoided the DB edit in this case by using the “tfsadminutil configureconnections” command to set the RS host name back to the NetBIOS name of the machine.”
So there you have it; If you have configured a HOST record for access to your TFS instance that contains a dotted address, you need to run tfsadminutil configureconnections command to update the ReportService record (use the /ReportServerUri switch) before you install SP1. After the upgrade, you can run tfsadminutil configureconnections a second time to set the value back.