Outlook Clients Unable to Connect to Exchange 2010 After Client Access Server Role Moved

Outlook clients may receive an error when they try to connect to mailboxes after the Client Access server role is moved between two Exchange Server 2010 servers.

Cannot start Microsoft Office Outlook. Unable to open the Outlook window. The set of folders could not be opened. The server is not available. Contact your administrator if this condition persists.

Unlike the previous versions of Exchange in Exchange Server 2010 all client communications, including MAPI clients, connect to the RPC Client Access service running on the Client Access server role.  Thanks to the componentized server role architecture of Exchange Server 2010 it is possible to move this role between servers to suit the needs of the organization.

For example, an organization may deploy Exchange Server 2010 on a single server, and then later scale that out to separate the Client Access server role to a different server.

Each mailbox database in the organization is associated with an RPC Client Access service in the same AD Site when it is first created.  This association is not dynamic.  If the Client Access server role is removed from the single Exchange server and deployed to a new server, all of the existing mailbox databases are no longer associated with a valid RPC Client Access service name.

The association can be seen on the mailbox database attributes by running this command in the Exchange Management Shell.

[PS] C:\>Get-MailboxDatabase | fl name,*rpc*

Name                  : Mailbox Database 0447493325
RpcClientAccessServer : ex1.domain.local

If the Client Access server role was moved from ex1.domain.local to ex2.domain.local, you can associate the mailbox database with the new RPC Client Access service by running this command.

[PS] C:\>Set-MailboxDatabase -Identity "Mailbox Database 0447493325" -RpcClientAccessServer ex2.domain.local

You can perform this action for all mailbox databases on the server by running this command.

[PS] C:\>Get-MailboxDatabase -Server ex1.domain.local | Set-MailboxDatabase -RpcClientAccessServer ex2.domain.local
About Paul Cunningham

Paul is a Microsoft Exchange Server MVP and publisher of Exchange Server Pro. He also holds several Microsoft certifications including for Exchange Server 2007, 2010 and 2013. Connect with Paul on Twitter and Google+.

Comments

  1. Thanks for the information !!!!

    • Thank you a million. I spend about 5 hours trying to troubleshoot this issue with Outlook resetting itself to the wrong rpc server after moved a CAS to a different server. This simple command put me back in business.

      Thank you!

  2. Does it matter if the server name: ex1.domain.local is using a different FQDN on the outside like: mail.domain.local ?

  3. Jason Cole says:

    At the bottom of your other article: http://exchangeserverpro.com/how-to-install-an-exchange-server-2010-client-access-server-array you say “Note that any existing Outlook profiles will not automatically update from the single Client Access Server to the new CAS array name. Those clients will not automatically failover to an alternate member of the CAS array when there is a server failure. You will need to update those profiles for them to receive the high availability benefits of the CAS array. This is one reason that it is important to establish CAS arrays prior to migrating user mailboxes to Exchange Server 2010.”
    Do you have to manually update a users outlook profile anytime you switch an RPCClientAccessServer or only when moving from a single CAS server to a CASArray? Thanks!

    • I’ve been doing some testing but haven’t nailed the exact scenarios where profiles do and don’t need updating.

      So my only answer is “yes, probably”. Best to test it in your specific environment because I think it largely depends on the Outlook version and whether the old name is still accessible or not.

  4. Thomas Lau says:

    Thank you very much! I installed 2 Exchange 2010 servers (each server include : CAS + HUB + MAILBOX roles) and created DAG. After I shut down one Exchange server, mailbox database users which in shutdown Exchange cannot access Outlook, even though I created DAG. I thought the DAG should be failed…… I submited a incident call to Microsoft, the engineer cannot reply my ASAP. Until I find this article, oh, my god. I should also need to change the associate CAS server.

    Thanks again.

  5. Hi Paul,

    Have you experienced any issues where after a mailbox has been moved to a new database which is part of the cas array on Exchange 2010 that the Outlook (in this case 2007) profile corrupts?

    And is there a work around for this?

    Regards,
    Paul

    • No I haven’t seen that issue before.

      • Thanks for the response, I managed to find the issue.

        At least on Exchange 2010 with Outlook 2007 this can be recreated.

        It seems that if the mailbox is moved to a database with a different RPCClientAccessServer address it can corrupt/cause issues with the profile – updating the RPCClientAccessServer on the mailbox database itself doesn’t cause any issues.

        • We have had a coexistence network ( Exchange 2007 front end, 2010 Mailbox, CAS ) for a very long time. Our mailboxes were all created on the Exchange 2007 box years ago, and then moved to the 2010 server. We just added 2 more Exchange 2010 servers and set up a DAG. We have 2 on site Exchange 2010 servers, and one off site 2010 Server. We DID NOT set up a CAS Array.

          I found by accident that some of my users have randomly been assigned now to point to the new servers for RPC / client access. The user’s mailbox databases are still pointing to the Original Server, but if one of the back up servers is off line, then some users cannot open their mailboxes.

          Without a CAS Array, can I manually set each user to point to the original 2010 box for RPC, Mail and CAS? I don’t mind manually changing over in the event of a primary Exchange server failure.

          Is the RPC Server value set by user, or by mailbox database? I would like to see the current user settings, and then edit them. I’m just not sure why ALL of the users didn’t change when we set up the DAG. It was a very random assignment for each user. Some were assigned to each server.

        • Tim, the problem you’re describing is what the CAS Array exists to solve.

          RPCClientAccessServer is a per-database setting. Users connect to the RPCClientAccessServer, not the mailbox server or DAG directly.

          Some reading that I think will answer all your questions there:
          http://exchangeserverpro.com/exchange-server-2010-cas-array/

  6. Thanks for this. Extremely helpful at 11:30pm after a CAS role server relocation with no array.

  7. David Musashi says:

    If your just migrating all your services from Server A to Server B (lease is up on Server A so just moving things to new hardware) so in the end you’ll only have Server B running, is it still necessary to create the CAS array? I thought outlook 2010 would automatically re-home itself to the new server as long as the old server was still online at the initial attempt to access the mailbox?
    Right now, “Get-MailboxDatabase | fl name,*rpc*” Tells me the RPC server for the old databases is the old server and the RPC server for the new databases is the new server. I’ve moved over only a small handful of clients to the new server (including myself) and so far we’ve all been working ok. However, I’ve not shut down the old server or removed the CAS role yet because 98% of the users are still on the old server. This article insinuates that this CAS issue won’t become known until after I’ve removed the CAS role from the old server?
    Is there any way to see what a particular user is using for a CAS? You say in a previous post that RPCClientAccessServer is a per-database setting and users connect to the RPCClientAccessServer, not the mailbox server. If “Get-MailboxDatabase | fl name,*rpc*” is telling me that the RPCClientAccessServer for a new database is on the new server and a user is moved to the new database on the new server, why wouldn’t they also be using the new RPCClientAccessServer?
    It seems silly that I’d have to create a CAS array just to remove a server from it, but if that’s what I have to do I’m more than willing to do so.

    Thanks in advance!

    • David Musashi says:

      Ok, reading the linked article “Getting Started with Exchange Server 2010 Client Access Server Arrays”. If Microsoft recommends the CASArray even for a single server I’m all for it. With a single server environment but with a dozen AD sites, I assume you just create the CASArray in the same AD site the physical server sits? So if the physical exchange server is in SiteA the creation is:

      New-ClientAccessArray -Name CompanyCASArray -Fqdn CASArray.DomainName.Com -Site SiteA

      Then after I configure the DNS record:

      Get-MailboxDatabase -Server MailServer.DomainName.com | Set-MailboxDatabase -RpcClientAccessServer CASArray.DomainName.Com

      I can confirm then that all databases are pointing to the new CASArray by using:

      Get-MailboxDatabase | fl name,*rpc*

      How do I update the users Outlook though? If I move an existing user to a database that has the newly updated CASArray, will Outlook update? What about users that are already in a database that has been updated with the new CASArray? As I understand it, outlook won’t update these existing users. Could I just move them out of the database and then back in so their RPCClientAccessServer settings update to the CASArray? If that’s the case, then wouldn’t moving them from the old server, to the new server (which had itself listed as the RPCClientAccessServer) have accomplished the same thing without needing the CASArray?

      • Within the same AD site, the Outlook profiles will continue to point to their existing server name details (regardless of the new CAS Array) as long as that server is still available (even if you’ve updated the RPCClientAccessServer attribute on the databases).

        Until that server name is unavailable, at which point they will redo their Autodiscover and find the new CAS Array name.

        • David Musashi says:

          Thanks Paul for the reply. I can’t stress how much I value this site and your posts!

          Ok, so if I understand you correctly, with the new CAS Array in place, but only on the new server, if I move a user from the old server to the new server, the outlook client won’t point to the new CAS Array until the old CAS becomes unavailable?

          What about people in other AD sites? Do I need to create a CAS Array attribute for each AD site even though there is only 1 CAS for the company?

        • There’s circumstances where the Outlook profile will update to the CAS Array value, and circumstances where it will not. From what I can tell of your situation it will not update the Outlook profiles, because the server name they’re already configured for will still exist.

          But this is something you can test and determine for yourself.

          No you don’t need CAS Array objects in every site. It only needs to exist in the site where the Exchange servers are located.

  8. We have an odd issue with one of our customer that they had an HA in AWS and they recently replaced their IT support team so what they did , they simply disconnected their aws service from them and just given the primary access to the exchange that is the primary is located in-house. Now when it turn to our side, we rebuilding the HA in aws again, but due to unprofessional implementation the DAG was unable to move and even we couldn’t replicate with the AWS, so we decide to move the existing mail box to aws and make this as primary, then rebuild the in-house exchange and replicate it again. so what happened now, some users mailbox moved well and those working perfect, some users still there in the in-house server those were failed in 80% and the mailbox size is almost 6-17 GB each those were unable to move. now the emails are getting the users through the aws. but some point when we configure the new outlook client for the users, it is actually pointing the old aws server name and the same time the same user with some other computer it works fine. we were checking on the House server if there any registry that related to the old aws server and those already removed from the entry. but still it is pointing to old server, so we forced to move the mailbox of having issues to the in-house server. what could be the problem.. sorry for my poor english

    the servers are running in 2008R2 and the exchange is 2010 SP1

  9. Danushka says:

    Dear Paul,
    I encountered issue with my existing exchange 2010 env. let me describe the scenario available right now.

    we have 3 x exchange 2010 with CAS+HB+MBX on each single server and exch01 was working as a primary CAS/HB/MBX. suddenly exch01 has no connection with CAS and MBX as users could unable to update the outlook. but once I mounted exch02 databases, it is working fine. we checked all required info in exch01 but no luck.

    currently exch01 working as a CAS/HB and exch02 act as a MBX.

    kindly help me to sort this issue.

Leave a Comment

*

We are an Authorized DigiCert™ SSL Partner.