Sunday, March 29, 2009

Exchange 2007 Outlook Anywhere (RPC over HTTP) Not Working

I ran into an issue when setting up an Exchange 2007 server on Windows Server 2008 where I could not get the Outlook Anywhere to work. In Exchange 2007 setting up Outlook Anywhere is supposed to be much easier than it was in previous versions, but no matter how many times I set it up, I could not get it to work. Now there are many possible reasons why Outlook Anywhere may have issues. I will list some of the more common reasons first, as if you are reading this you are probably experiencing issues just like I did, and then I will go into the bug which haunted me.

If your Outlook Anywhere is not working, first have you installed the Rpc Proxy windows component? Have you setup your firewall to forward incoming connections on port 443(ssl) to your Exchange Server? Have you purchased a certificate from a trusted CA and does it include the required subject alternative names? Outlook will not connect to an Exchange 2007 server using Outlook Anywhere if the certificate cannot be verified by a trusted certificate authority. Meaning you cannot use the Exchange 2007 server’s self-signed certificate to connect. Lastly have you gone through the wizard in the Exchange Management Console to configure and enable Outlook Anywhere, or configured it from the Exchange Management Shell?

If all of the above are done and you feel certain you did them correctly, then maybe you are experiencing the same bug I did with Exchange 2007 on Windows Server 2008. First a little background on the environment. The setup I had was two Windows Server 2008 servers on the network. One server was setup with Active Directory, DNS, and Global Catalog. The second server was setup as the Exchange Server running the Mailbox role, the Transport role, and the Client Access role, a default configuration for Exchange 2007.

The issue I ran into is one that is not well documented, and took me weeks to find the answer to. What finally pointed me in the correct direction was I stumbled on a blog article here from Aaron Marks, who deserves great credit for posting a walkthrough that helped to diagnose and fix the problem. I only wish I had found his blog post sooner. I suggest reading his walkthrough as he goes into more depth than I do, and he has links to related information.

The short version is that Server 2008, just like Vista gives preference to IPv6, but when you enable Outlook Anywhere on the Exchange 2007 server, it does not listen for RPC over HTTP on IPv6. The solution? If you are not using IPv6 in the organization and you want Outlook Anywhere to work, you need to disable IPv6. To do this you would think you just uncheck the box from the interfaces, but that does not totally disable IPv6, or so it appears. In the registry go to HKLM\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters then add a 32-bit D-WORD DisabledComponents and set the value to 0xff. This disables all but the loopback. To disable IPv6 on the loopback modify your HOSTS file. Find the line ::1 localhost and put a # in front to comment it out. After doing this I restarted the server to make sure everything took effect. At that point, as long as everything else is configured correctly, Outlook Anywhere should start working.

I hope that by posting this, others will not spend as much wasted time trying to find a solution like I did.

No comments:

Post a Comment