Symptom
When you attempt to configure Microsoft Dynamics 365 for Outlook to a Dynamics 365 instance, you encounter the following error:
"There is a problem communicating with the Microsoft Dynamics 365 server. The server might be unavailable. Try again later. If the problem persists, contact your system administrator."
Cause
This error will occur if you attempt to connect to an instance that prohibits Transport Layer Security (TLS) 1.0 using Dynamics 365 for Outlook on a version prior to 8.2.2.137. Updates 8.2.2.137 and later for Dynamics 365 for Outlook use Transport Layer Security (TLS) 1.2 by default.
Dynamics 365 Online instances do not allow TLS 1.0 connections.This can also affect Dynamics 365 On-Premises deployments if TLS 1.0 is prohibited. Microsoft recommends disabling TLS 1.0 as addressed in the following article:
Resolution
Option 1 (Recommended):
Version 9.0 of Dynamics 365 for Outlook is available at the link below and is the recommended client to use for connecting to 9.0 instances:
https://www.microsoft.com/download/details.aspx?id=56972
Option 2:
Install the 8.2.2.137 Update for Dynamics 365 for Microsoft Outlook.
https://www.microsoft.com/en-us/download/details.aspx?id=56327
Option 3 (Not recommended):
Force authentication through TLS 1.2 by adjusting local registry:
More Information
If you expand the Details section of the error, the following additional details are shown:
Metadata contains a reference that cannot be resolved: 'https://crmorgname.api.crm.dynamics.com/XRMServices/2011/Organization.svc?wsdl&sdkversion=8.2'. at System.ServiceModel.Description.MetadataExchangeClient.MetadataRetriever.Retrieve(TimeoutHelper timeoutHelper)
at System.ServiceModel.Description.MetadataExchangeClient.ResolveNext(ResolveCallState resolveCallState) at System.ServiceModel.Description.MetadataExchangeClient.GetMetadata(MetadataRetriever retriever) at System.ServiceModel.Description.MetadataExchangeClient.GetMetadata(Uri address, MetadataExchangeClientMode mode) at Microsoft.Xrm.Sdk.Client.ServiceMetadataUtility.RetrieveServiceEndpointMetadata(Type contractType, Uri serviceUri, Boolean checkForSecondary) at Microsoft.Xrm.Sdk.Client.ServiceConfiguration`1..ctor(Uri serviceUri, Boolean checkForSecondary) at Microsoft.Xrm.Sdk.Client.OrganizationServiceConfiguration..ctor(Uri serviceUri, Boolean enableProxyTypes, Assembly assembly) at Microsoft.Xrm.Sdk.Client.ServiceConfigurationFactory.CreateConfiguration[TService](Uri serviceUri, Boolean enableProxyTypes, Assembly assembly) at Microsoft.Xrm.Sdk.Client.ServiceConfigurationFactory.CreateConfiguration[TService](Uri serviceUri) at Microsoft.Crm.Outlook.ClientAuth.ClientAuthProvidersFactory`1.DiscoverAuthUsingServiceMetadata(Uri endPoint, Uri webEndPoint) at Microsoft.Crm.Outlook.ClientAuth.ClientAuthProvidersFactory`1.GetAuthProviderForDeployment(Uri endPoint, Uri webEndPoint) at Microsoft.Crm.Application.Outlook.Config.DeploymentsInfo`1.GetAuthenticatedProvider(OrganizationDetail orgDetail, Control parentWindow) at Microsoft.Crm.Application.Outlook.Config.ServerForm.LoadDataToServerInfo() at Microsoft.Crm.Application.Outlook.Config.ServerForm.<InitializeBackgroundWorkers>b__3(Object sender, DoWorkEventArgs e) at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e) at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)