Exchange 2010 SP3 RU 17 to Exchange 2016 Enterprise CU11 Migration

Highlighted
New Contributor

Hello Good People,

I am migrating from Exchange 2010 SP3 RU17 to Exchange 2016 CU 11.

My setup is two Exchange 2010(MBX,HT,CA roles ) with DAG setup.

I have completed all the prerequisites and installed Exchange 2016 CU11 in two new VM's

Configured the exchange 2016 for URl's, Autodiscover SCP, SSl Certificate, MB databases.

Configured the exchange 2010 for coexistence mode ( SP3 RU11, Outlook Anywhere is enabled with IIS Authentication (NTLM),Offline Address Book point to Exchange 2010 Databases)

As everything is ready to cutover the client access namespace and mail flow

I want to test before taking the new servers to production

So i have my test laptop where i have edited the hosts file and pointed it to new exchange server 2016

My outlook 2016 client on test laptop has two mailbox configured one from Exchange 2010 and other from Exchange 2016

Exchange 2016 Mailbox users ( test.exch2016 ) is connecting to new exchange 2016 but Exchange 2010 is not connecting to Exchange 2010 Mailbox user

When Accessing from OWA i can open the mailbox from exchange 2010 server

Actually we want all outlook clients to connect to exchange 2016 server and from exchange 2016 request will be proxied to exchange 2010 servers for mailbox databases until we start migrating mailboxes

Because when we are in coexistence mode ( Exchange 2010 and 2016 ) higher version of exchange should be facing the client connections and i understand exchange 2016 will proxy to exchange 2010 for retrieving the mailbox database

Appreciate your suggestions 

Did i miss anything from my preparation ?

 

Hello Good People, 

 

I have found something which could be the issue, Please suggest me how to solve it.

 

%Exchangeinstalldirectory%\v15\logging\httpproxy\rpchttp

 

2019-01-09T07:46:17.959Z,17f2fbb1-cff4-47b9-bb62-6dcd59e50a1d,15,1,1591,10,,RpcHttp,email.abc.com,/rpc/rpcproxy.dll,,NTLM,true,ABC\test.exch2010,,Url~https://hqex02.abc.local/rpc/rpcproxy.dll?email.abc.com:6004,MSRPC,172.20.7.24,HQEX-01,200,,,RPC_IN_...: The remote server returned an error: (503) Server Unavailable.    at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)    at Microsoft.Exchange.HttpProxy.RpcHttpProxyRequestHandler.<>c__DisplayClass29_0.<OnValidateBackendServerCacheCompleted>b__0();SharedCache=AMCacheRemovalFailure;StreamProxy=StreamProxy-Request-ExpectReadCallback;,,,,,CafeV1

 

 

Exchange 2010 Sp3 are win 2008 r2 SP1 - OS details

 

Exchange 2016 are win 2016 ver 1607 - OS Details

 

Also if i try UNC path (\\10.x.x.x ) or Name (\\XXXX)  to old server from new 2016 servers i get error like  Network name not available

 

When i try to find the details of old servers from exchange 2016 ECP Admin center i get the below error for both of the exchange 2010 servers

 

 

 

 

 

5 Replies
Highlighted

Hi @arifsohail92

 

I have the exact same scenario and same/ditto issue. Brother please let me know how you have managed to resolve this case and how you have make sure that everything is working fine before name space cutover.  

Highlighted

Hi Asif,

 

Please follow this link for migration 

 

https://practical365.com/exchange-server/migrating-exchange-server-2016/

 

Please follow this link for troubleshooting the issue 

 

https://blogs.technet.microsoft.com/exchange/2013/05/23/ambiguous-urls-and-their-effect-on-exchange-...

 

 

 

In my case solution is forcing outlook anywhere for outlook clients.

By default with Outlook Anywhere enabled in the environment your clients prefer RPC/TCP connections when on Fast Networks as seen below.<o:p></o:p>

image<o:p></o:p>

The trick we use to force Outlook Anywhere to also be used internally is via Autodiscover. Using Autodiscover we can make Windows Outlook clients prefer RPC/HTTPS on both Fast and Slow networks as seen here.<o:p></o:p>

image<o:p></o:p>

The method used to make clients always prefer HTTPS is configuring the OutlookProviderFlags option via the Set-OutlookProvider cmdlet. The following commands are executed from the Exchange 2010 Management Shell.<o:p></o:p>

Set-OutlookProvider EXPR -OutlookProviderFlags:ServerExclusiveConnect<o:p></o:p>

Set-OutlookProvider EXCH -OutlookProviderFlags:ServerExclusiveConnect<o:p></o:p>

If for any reason you need to put the configuration back to its default settings, issue the following commands and clients will no longer prefer HTTP on Fast Networks.<o:p></o:p>

Set-OutlookProvider EXPR -OutlookProviderFlags:None<o:p></o:p>

Set-OutlookProvider EXCH -OutlookProviderFlags:None

Hope it helps to others who are doing migrations.

 

 

Highlighted

Hi @arifsohail92 , 

 

Thank you so much for providing me such a valuable information. Right now only BASIC authentication is enabled of IIS Authentication Method on Exchange 2010 CAS servers. However, I am able to connect now with Exchange 2010 mailboxes after pointing the name space to Exchange 2016. 

 

I am able to connect to Exchange 2010 mailboxes through outlook even on Local LAN after enabling the checking the option provided by you ( on fast networks, connect using http first).

 

However, in RPCHTTP logs I am getting following error that server is not available. I am confused now that if error is coming in logs then how outlook is connecting fine. 

 

Question: Can I ignore the logs if outlook is connecting fine for Exchange 2010 mailboxes after pointing the name space to Exchange 2016?  If not then i am not sure how outlook is connecting successfully?

 

Note: For security reason, I have replaced the domain name with mydomain.

2019-01-22T07:26:07.281Z,da5e7680-86ec-4c54-9f23-3d818d1c7e8b,15,1,1591,10,,RpcHttp,webmail.mydomain.com,/rpc/rpcproxy.dll,,Basic,true,mydomain

\test.migration4,,Url~https://servervpexhc1.mydomain.local/rpc/rpcproxy.dll?

"webmail.mydomain.com:6002,MSRPC,10.80.90.11,PVEXMB01,200,,,RPC_IN_DATA,Proxy,servervpexhc1.mydomain.local,15.00.0000.000,IntraForest,RpcHttpProxyRules,,,,1073741824,,,,0,457,,0,,0,,0,0,,0,3376,0,2831,6,0,,,,,0,1,3376,0,,539,,545,3376,,?

webmail.mydomain.com:6002,,BeginRequest=2019-01-22T07:26:03.904Z;CorrelationID=<empty>;ProxyState-Run=None;FEAuth=BEVersion-

1941962752;NewConnection=10.0.0.115&0;H-BeginGetResponse=2019-01-22T07:26:04.362Z;H-OnResponseReady=2019-01-22T07:26:04.373Z;H-

EndGetResponse=2019-01-22T07:26:04.373Z;NewConnection=10.0.0.115&0;BeginGetRequestStream=2019-01-

22T07:26:04.374Z;OnRequestStreamReady=2019-01-22T07:26:04.380Z;ProxyState-Complete=ProxyRequestData;SharedCacheGuard=0;EndRequest=2019-

01-22T07:26:07.281Z;,WebExceptionStatus=ProtocolError;ResponseStatusCode=503;WebException=System.Net.WebException: The remote server
 
returned an error: (503) Server Unavailable.    at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)    at 

Microsoft.Exchange.HttpProxy.RpcHttpProxyRequestHandler.<>c__DisplayClass29_0.<OnValidateBackendServerCacheCompleted>b__0

();SharedCache=AMCacheRemovalFailure;StreamProxy=StreamProxy-Request-ExpectReadCallback;,,,,,CafeV1"

Highlighted

Hi @arifsohail92 , 

 

Thank you so much for providing me such a valuable information. Right now only BASIC authentication is enabled of IIS Authentication Method on Exchange 2010 CAS servers. However, I am able to connect now with Exchange 2010 mailboxes after pointing the name space to Exchange 2016. 

 

I am able to connect to Exchange 2010 mailboxes through outlook even on Local LAN after enabling the checking the option provided by you ( on fast networks, connect using http first).

 

However, in RPCHTTP logs I am getting following error that server is not available. I am confused now that if error is coming in logs then how outlook is connecting fine. 

 

Question: Can I ignore the logs if outlook is connecting fine for Exchange 2010 mailboxes after pointing the name space to Exchange 2016?  If not then i am not sure how outlook is connecting successfully?

 

Note: For security reason, I have replaced the domain name with mydomain.

 


"2019-01-22T07:26:07.281Z,da5e7680-86ec-4c54-9f23-3d818d1c7e8b,15,1,1591,10,,RpcHttp,webmail.mydomain.com,/rpc/rpcproxy.dll,,Basic,true,mydomain

\test.migration4,,Url~https://servervpexhc1.mydomain.local/rpc/rpcproxy.dll?

"webmail.mydomain.com:6002,MSRPC,10.80.90.11,PVEXMB01,200,,,RPC_IN_DATA,Proxy,servervpexhc1.mydomain.local,15.00.0000.000,IntraForest,RpcHttpProxyRules,,,,1073741824,,,,0,457,,0,,0,,0,0,,0,3376,0,2831,6,0,,,,,0,1,3376,0,,539,,545,3376,,?

webmail.mydomain.com:6002,,BeginRequest=2019-01-22T07:26:03.904Z;CorrelationID=<empty>;ProxyState-Run=None;FEAuth=BEVersion-

1941962752;NewConnection=10.0.0.115&0;H-BeginGetResponse=2019-01-22T07:26:04.362Z;H-OnResponseReady=2019-01-22T07:26:04.373Z;H-

EndGetResponse=2019-01-22T07:26:04.373Z;NewConnection=10.0.0.115&0;BeginGetRequestStream=2019-01-

22T07:26:04.374Z;OnRequestStreamReady=2019-01-22T07:26:04.380Z;ProxyState-Complete=ProxyRequestData;SharedCacheGuard=0;EndRequest=2019-

01-22T07:26:07.281Z;,WebExceptionStatus=ProtocolError;ResponseStatusCode=503;WebException=System.Net.WebException: The remote server
 
returned an error: (503) Server Unavailable.    at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)    at 

Microsoft.Exchange.HttpProxy.RpcHttpProxyRequestHandler.<>c__DisplayClass29_0.<OnValidateBackendServerCacheCompleted>b__0

();SharedCache=AMCacheRemovalFailure;StreamProxy=StreamProxy-Request-ExpectReadCallback;,,,,,CafeV1"

Highlighted

Hello Asif,

 

In my case i have ignored that error and started my migration and all users were connecting to 2016 mailbox databases.

 

However if you want to check the root cause of the issue, check with microsoft.

 

Thanks,

Arif