null

Решение проблемы с EWS Exchange 2013

Столкнулись с проблемой некорректного функционирования Exchange Web Services в инфраструктуре с Exchange 2013 обновленным с Exchange 2010.

PS] C:\Windows\system32>Get-WebServicesVirtualDirectory
Creating a new session for implicit remoting of "Get-WebServicesVirtualDirectory" command...
WARNING: Commands available in the newly opened remote session are different than when the implicit remoting module was
 created.  Consider recreating the module using Export-PSSession cmdlet.

Name                                    Server                                  InternalUrl
----                                    ------                                  -----------
EWS (Default Web Site)                  ServerExchange2010CAS                         https://ServerExchange2010CAS.domain....
EWS (Default Web Site)                  ServerExchange2013_1                      https://ServerExchange2013_1.domain....
EWS (Default Web Site)                  ServerExchange2013_2                         https://ServerExchange2013_2.domain....


[PS] C:\Windows\system32>Get-OabVirtualDirectory

Server                        Name                          Internal Url                  External Url
------                        ----                          ------------                  ------------
ServerExchange2010CAS               OAB (Default Web Site)        https://ServerExchange2010CAS.domain... https://mail.domain/OAB
ServerExchange2013_1                OAB (Default Web Site)         https://ServerExchange2013_1.domain... https://mail.domain/OAB
ServerExchange2013_2               OAB (Default Web Site)         https://ServerExchange2013_2.domain... https://mail.domain/OAB


[PS] C:\Windows\system32>Get-AutodiscoverVirtualDirectory

Name                                    Server                                  InternalUrl
----                                    ------                                  -----------
Autodiscover (Default Web Site)         ServerExchange2010CAS  
Autodiscover (Default Web Site)         ServerExchange2013_1
Autodiscover (Default Web Site)         ServerExchange2013_2


[PS] C:\Windows\system32>Get-ActiveSyncVirtualDirectory

Name                                    Server                                  InternalUrl
----                                    ------                                  -----------
Microsoft-Server-ActiveSync (Default... ServerExchange2010CAS                         https://ServerExchange2010CAS.domain....
Microsoft-Server-ActiveSync (Default... ServerExchange2013_1                         https://ServerExchange2013_2.domain....
Microsoft-Server-ActiveSync (Default... ServerExchange2013_2                         https://ServerExchange2013_2.domain....


[PS] C:\Windows\system32>Test-WebServicesConnectivity -Identity test@domain -MailboxCredential (Get-Credential)

cmdlet Get-Credential at command pipeline position 1
Supply values for the following parameters:
Credential

Source                              ServiceEndpoint                     Scenario                       Result  Latency
                                                                                                                  (MS)
------                              ---------------                     --------                       ------  -------
ServerExchange2013_1.domain      ServerExchange2010CAS.domain      Автообнаружение: поставщик ... Failure     534
ServerExchange2013_1.domain                                          EWS: GetFolder                 Skipped       0

 

При этом IIS на каждой системе успешно отдавал autodiscover.xml при непосредственном обращении к ней.

Ознакомится с принципом работы Autodiscover в Exchange 2013 можно и рекомендовано из официального источника с доступным для понимания описанием и красивыми иллюстрациями. 

Сам приведу только полезные выдержки касающиеся решения возникшей проблемы. При подключении клиента происходит запрос и предоставление SCP (service connection point)

Клиент выбирает "понравившейся" ему сервер (в случае заказчика им всегда оказывался ServerExchange2010CAS.domain).

В настройках Autodicovery для каждого CAS сервера есть параметр в ActiveDirectory serviceBindingInformation в котром ссылка на xml на сервере.

Для почтовых серверов параметр serviceBindingInformation был https://ServerExchange2010CAS.domain/autodiscover/autodiscover.xml и соответственно использовал Exchange 2010. Несмотря на то, что SCP от Exchange 2010 CAS должна отрабатывать и для Exchange 2013 есть свои ньюансы.

Соответственно, решением было изменение для сервера ServerExchange2010CAS.domain параметра serviceBindingInformation в ActiveDirectory для https://autodiscover.domain/autodiscover/autodiscover.xml, ссылающийся в DNS на Exchange 2013.

[PS] C:\Windows\system32>Test-WebServicesConnectivity -Identity test@domain -MailboxCredential (Get-Credential)

 

Source                              ServiceEndpoint                     Scenario                       Result  Latency

                                                                                                                  (MS)

------                              ---------------                     --------                       ------  -------

ServerExchange2013_1.domain      autodiscover.domain             Автообнаружение: поставщик ... Success     283

ServerExchange2013_1.domain      mail.domain                     EWS: GetFolder                 Success     799