Eca. Construímos um ambiente AD e Exchange 2010 totalmente novo há alguns meses para um grande cliente. O Outlook Anywhere não está funcionando. Os clientes do Outlook simplesmente nunca se conectam, não parece ser um erro ou tempo limite.
Isso foi uma migração. Originalmente, tínhamos uma incompatibilidade de certificado para o Outlook Anywhere, então tenho quase certeza de que nunca funcionou. Recentemente, alteramos o sufixo de domínio SMTP de todos para corresponder ao domínio da URL do webmail, portanto, esperava que o OA começasse a funcionar. Agora temos um dia de neve, muitas pessoas em casa, e acontece que não funciona. Parece que há algum tipo de problema com a conexão do RPC com proxy ao OAB, mas estou bastante perplexo sobre como corrigir isso.
A descoberta automática é boa, OWA, ActiveSync, EWS estão funcionando há meses.
Temos 2 servidores de caixa de correio em um DAG, 1 servidor de caixa de correio para pastas públicas e diários, uma matriz CAS de 2 servidores. Por dentro, temos NLB para o array. Do lado de fora, temos um simples Netscaler LB VIP para o array que não faz nada de especial, apenas uma passagem TCP 443.
A RCA mostra isso - é sempre cerca de 33 segundos, então presumo que haja um tempo limite de 30 segundos aqui.
Tentativa de ping do proxy RPC webmail.5ssl.com. O ping do proxy RPC foi executado com sucesso. Detalhes adicionais Tempo decorrido: 201 ms.
Tentando executar ping no ponto de extremidade MAPI Mail Store com a identidade: PFEXCAS.internal.domain.name.com:6001. A tentativa de executar ping no terminal falhou. Detalhes Adicionais Um erro RPC foi lançado pelo processo RPC Runtime. Erro 1818 Chamada cancelada
Tempo decorrido: 33536 ms.
Agora, ambos os servidores CAS estão realmente escutando no TCP 6001. PFEXCAS é o nome do NLB VIP.
Isso funciona para as portas 6001, 6002, 6004, então isso é bom
rpcping -t ncacn_http -s pfexcas.internal.domain.name.com -o RpcProxy=pfexcas.internal.domain.name.com -P " , , " -I " , " -H 1 -u 10 -a conectar - F 3 -v 3 -e 6004
Isso não, dá um 1722
rpcping -t ncacn_http -s pfexcas.internal.domain.name.com -o RpcProxy=webmail.5ssl.com -P " , , " -I " , " -H 1 -u 10 -a conectar -F 3 -v 3 -e 6004
Test-OutlookConnectivity -Protocol:Http -verbose
funciona bem em ambos os servidores, incluindo GetNewDSA e RFRI::GetReferral para o Catálogo de Endereços, eles falham em nosso próximo teste.
Este é o Ex2010, então HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Rpc\RpcProxy\ValidPorts_AutoConfig_Exchange foi verificado e parece correto em ambos os servidores CAS
PFEXCAS:6001-6004;PFEXCAS.internal.domain.name:6001-6004;PFEXCAS01:6001-6004;PFEXCAS01.internal.domain.name:6001-6004;PFEXCAS02:6001-6004;PFEXCAS02.internal.domain.name: 6001-6004;PFEXMB01:6001-6004;PFEXMB01.internal.domain.name:6001-6004;PFEXMB02:6001-6004;PFEXMB02.internal.domain.name:6001-6004;PFEXMB03:6001-6004;PFEXMB03.internal. domínio.nome:6001-6004
A execução Test-OutlookConnectivity -RpcProxyTestType:Internal -RpcTestType:Server -verbose
nos dá isso (resultados iguais/semelhantes quando executado em qualquer servidor CAS. Portanto, há algo errado com o proxy RPC para o catálogo de endereços, mas inferno se eu puder descobrir o quê. Todo o resto no ambiente parece estar funcionando muito bem, e isso setup foi configurado de forma bem próxima ao ambiente original que tinha o OA funcionando.
VERBOSE: [19:08:13.652 GMT] Test-OutlookConnectivity : Target Client Access server = 'PFEXCAS01.internal.domain.name.com'
VERBOSE: [19:08:13.652 GMT] Test-OutlookConnectivity : Using connection parameters :
'internal.domain.name.com\extest_23e99fa922cb4: RpcProxy/RPC-over-HTTP, [PFEXCAS01.internal.domain.name.com/Basic]'
VERBOSE: [19:08:13.652 GMT] Test-OutlookConnectivity : Pinging RpcProxy at the following URL:
https://PFEXCAS01.internal.domain.name.com/rpc/RpcProxy.dll.
ClientAccessServer ServiceEndpoint Scenario Result Latency
(MS)
------------------ --------------- -------- ------ -------
PFEXCAS01.FVE.AD.... PFEXCAS01.internal.domain.name.com RpcProxy::VerifyRpcProxy. Success 46.80
VERBOSE: [19:08:13.698 GMT] Test-OutlookConnectivity : RPC Endpoint = 'PFEXCAS01.internal.domain.name.com'
VERBOSE: [19:08:13.698 GMT] Test-OutlookConnectivity : RPC Endpoint = 'PFEXCAS01.internal.domain.name.com'
VERBOSE: [19:08:13.698 GMT] Test-OutlookConnectivity : RPC Endpoint = 'PFEXCAS01.internal.domain.name.com'
VERBOSE: [19:08:13.698 GMT] Test-OutlookConnectivity : RPC Endpoint = 'PFEXCAS01.internal.domain.name.com'
VERBOSE: [19:08:13.698 GMT] Test-OutlookConnectivity : RPC Endpoint = 'PFEXCAS01.internal.domain.name.com'
VERBOSE: [19:08:13.698 GMT] Test-OutlookConnectivity : Using connection parameters :
'internal.domain.name.com\extest_23e99fa922cb4: Rfri/RPC-over-HTTP, [PFEXCAS01.internal.domain.name.com/Basic],
[PFEXCAS01.internal.domain.name.com/Negotiate]'
VERBOSE: [19:08:13.714 GMT] Test-OutlookConnectivity : Mailbox = 'internal.domain.name.com\extest_23e99fa922cb4', Owner =
'/o=FIVESTAR/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=extest_23e99fa922cb46cb'
VERBOSE: [19:08:13.714 GMT] Test-OutlookConnectivity : Address Book Operation = 'GetNewDSA', Input = 'userLegacyDN',
Input Value = '/o=FIVESTAR/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=extest_23e99fa922cb46cb'
VERBOSE: [19:08:21.342 GMT] Test-OutlookConnectivity : Microsoft.Exchange.Rpc.ServerUnavailableException: Error 0x6ba
(The RPC server is unavailable) from cli_RfrGetNewDSA
EEInfo: ComputerName: n/a
EEInfo: ProcessID: 4520
EEInfo: Generation Time: 2015-01-27 19:08:21.342
EEInfo: Generating component: 2
EEInfo: Status: 0x000006BA
EEInfo: Detection location: 1710
EEInfo: Flags: 0
EEInfo: NumberOfParameters: 1
EEInfo: prm[0]: Long val: 0 (0x00000000)
EEInfo: ComputerName: n/a
EEInfo: ProcessID: 4520
EEInfo: Generation Time: 2015-01-27 19:08:21.342
EEInfo: Generating component: 13
EEInfo: Status: 0x000006BA
EEInfo: Detection location: 1352
EEInfo: Flags: 0
EEInfo: NumberOfParameters: 1
EEInfo: prm[0]: Long val: -1073606646 (0xC002100A)
EEInfo: ComputerName: n/a
EEInfo: ProcessID: 4520
EEInfo: Generation Time: 2015-01-27 19:08:21.342
EEInfo: Generating component: 14
EEInfo: Status: 0xC002100A
EEInfo: Detection location: 1380
EEInfo: Flags: 0
EEInfo: NumberOfParameters: 2
EEInfo: prm[0]: Long val: 12175 (0x00002F8F)
EEInfo: prm[1]: Unicode string: /rpc/rpcproxy.dll?PFEXCAS01.internal.domain.name.com:6002
EEInfo: ComputerName: n/a
EEInfo: ProcessID: 4520
EEInfo: Generation Time: 2015-01-27 19:08:21.342
EEInfo: Generating component: 14
EEInfo: Status: 0x00010000
EEInfo: Detection location: 1385
EEInfo: Flags: 0
EEInfo: NumberOfParameters: 2
EEInfo: prm[0]: Long val: 16 (0x00000010)
EEInfo: prm[1]: Binary Buffer:
<junk>
at ThrowRpcException(Int32 rpcStatus, String message)
at Microsoft.Exchange.Rpc.RpcClientBase.ThrowRpcExceptionWithEEInfo(Int32 rpcStatus, String routineName)
at Microsoft.Exchange.Rpc.Rfri.RfriRpcClient.GetNewDSA(String userDN, String& server)
at Microsoft.Exchange.Monitoring.RfriClientWrapper.<>c__DisplayClass7.<GetNewDSA>b__6()
at Microsoft.Exchange.Monitoring.OutlookConnectivityContext.RpcExceptionWrapper(Func`1 protectedCall)
VERBOSE: [19:08:21.342 GMT] Test-OutlookConnectivity : AddressBook operation failed. Operation = 'GetReferral', Error
= 'The Address Book Referral operation failed. Operation = '<GetNewDSA>b__6', returnValue = '1722', server =
'PFEXCAS01.internal.domain.name.com', user = '/o=FIVESTAR/ou=Exchange Administrative Group
(FYDIBOHF23SPDLT)/cn=Recipients/cn=extest_23e99fa922cb46cb', .'
PFEXCAS01.FVE.AD.... PFEXCAS01.internal.domain.name.com RFRI::GetReferral. Failure -1.00
VERBOSE: [19:08:21.342 GMT] Test-OutlookConnectivity : RPC Endpoint = 'PFEXCAS01.internal.domain.name.com'
VERBOSE: [19:08:21.342 GMT] Test-OutlookConnectivity : Using connection parameters :
'internal.domain.name.com\extest_23e99fa922cb4: Nspi/RPC-over-HTTP, [PFEXCAS01.internal.domain.name.com/Basic],
[PFEXCAS01.internal.domain.name.com/Negotiate]'
VERBOSE: [19:08:21.342 GMT] Test-OutlookConnectivity : Address Book Operation = 'Bind'
VERBOSE: [19:08:28.971 GMT] Test-OutlookConnectivity : Microsoft.Exchange.Rpc.ServerUnavailableException: Error 0x6ba
(The RPC server is unavailable) from cli_NspiBind
EEInfo: ComputerName: n/a
EEInfo: ProcessID: 4520
EEInfo: Generation Time: 2015-01-27 19:08:28.955
EEInfo: Generating component: 2
EEInfo: Status: 0x000006BA
EEInfo: Detection location: 1710
EEInfo: Flags: 0
EEInfo: NumberOfParameters: 1
EEInfo: prm[0]: Long val: 0 (0x00000000)
EEInfo: ComputerName: n/a
EEInfo: ProcessID: 4520
EEInfo: Generation Time: 2015-01-27 19:08:28.955
EEInfo: Generating component: 13
EEInfo: Status: 0x000006BA
EEInfo: Detection location: 1352
EEInfo: Flags: 0
EEInfo: NumberOfParameters: 1
EEInfo: prm[0]: Long val: -1073606646 (0xC002100A)
EEInfo: ComputerName: n/a
EEInfo: ProcessID: 4520
EEInfo: Generation Time: 2015-01-27 19:08:28.955
EEInfo: Generating component: 14
EEInfo: Status: 0xC002100A
EEInfo: Detection location: 1380
EEInfo: Flags: 0
EEInfo: NumberOfParameters: 2
EEInfo: prm[0]: Long val: 12175 (0x00002F8F)
EEInfo: prm[1]: Unicode string: /rpc/rpcproxy.dll?PFEXCAS01.internal.domain.name.com:6004
EEInfo: ComputerName: n/a
EEInfo: ProcessID: 4520
EEInfo: Generation Time: 2015-01-27 19:08:28.955
EEInfo: Generating component: 14
EEInfo: Status: 0x00010000
EEInfo: Detection location: 1385
EEInfo: Flags: 0
EEInfo: NumberOfParameters: 2
EEInfo: prm[0]: Long val: 16 (0x00000010)
EEInfo: prm[1]: Binary Buffer:
<junk>
at ThrowRpcException(Int32 rpcStatus, String message)
at Microsoft.Exchange.Rpc.RpcClientBase.ThrowRpcExceptionWithEEInfo(Int32 rpcStatus, String routineName)
at Microsoft.Exchange.Rpc.Nspi.NspiRpcClient.Bind(UInt32 flags, IntPtr stat, IntPtr guid)
at Microsoft.Exchange.Monitoring.NspiClientWrapper.<Bind>b__4()
at Microsoft.Exchange.Monitoring.OutlookConnectivityContext.RpcExceptionWrapper(Func`1 protectedCall)
VERBOSE: [19:08:28.971 GMT] Test-OutlookConnectivity : Address Book operation failed. Details: The NSPI operation
failed. Operation = '<Bind>b__4', ReturnValue = '1722', Server = 'PFEXCAS01.internal.domain.name.com', User =
'/o=FIVESTAR/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=extest_23e99fa922cb46cb', ..
PFEXCAS01.FVE.AD.... PFEXCAS01.internal.domain.name.com NSPI::GetProfileDetails. Failure -1.00
VERBOSE: [19:08:28.971 GMT] Test-OutlookConnectivity : RPC Endpoint = 'PFEXCAS01.internal.domain.name.com'
VERBOSE: [19:08:28.971 GMT] Test-OutlookConnectivity : RPC Endpoint = 'PFEXCAS01.internal.domain.name.com'
VERBOSE: [19:08:28.971 GMT] Test-OutlookConnectivity : RPC Endpoint = 'PFEXCAS01.internal.domain.name.com'
VERBOSE: [19:08:28.971 GMT] Test-OutlookConnectivity : Using connection parameters :
'internal.domain.name.com\extest_23e99fa922cb4: Mailbox/RPC-over-HTTP, [PFEXCAS01.internal.domain.name.com/Basic],
[PFEXCAS01.internal.domain.name.com/Negotiate]'
VERBOSE: [19:08:28.971 GMT] Test-OutlookConnectivity : Mailbox Operation: 'EcDoConnectEx', Target mailbox:
'/o=FIVESTAR/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=extest_23e99fa922cb46cb'
VERBOSE: [19:08:28.986 GMT] Test-OutlookConnectivity : RPC Endpoint = 'PFEXCAS01.internal.domain.name.com'
VERBOSE: [19:08:28.986 GMT] Test-OutlookConnectivity : RPC Endpoint = 'PFEXCAS01.internal.domain.name.com'
VERBOSE: [19:08:36.599 GMT] Test-OutlookConnectivity : Microsoft.Exchange.Rpc.ServerUnavailableException: Error 0x6ba
(The RPC server is unavailable) from EcDoConnectEx
EEInfo: ComputerName: n/a
EEInfo: ProcessID: 4520
EEInfo: Generation Time: 2015-01-27 19:08:36.599
EEInfo: Generating component: 13
EEInfo: Status: 0x000006BA
EEInfo: Detection location: 1352
EEInfo: Flags: 0
EEInfo: NumberOfParameters: 1
EEInfo: prm[0]: Long val: -1073606646 (0xC002100A)
EEInfo: ComputerName: n/a
EEInfo: ProcessID: 4520
EEInfo: Generation Time: 2015-01-27 19:08:36.599
EEInfo: Generating component: 14
EEInfo: Status: 0xC002100A
EEInfo: Detection location: 1380
EEInfo: Flags: 0
EEInfo: NumberOfParameters: 2
EEInfo: prm[0]: Long val: 12175 (0x00002F8F)
EEInfo: prm[1]: Unicode string: /rpc/rpcproxy.dll?PFEXCAS01.internal.domain.name.com:6001
EEInfo: ComputerName: n/a
EEInfo: ProcessID: 4520
EEInfo: Generation Time: 2015-01-27 19:08:36.599
EEInfo: Generating component: 14
EEInfo: Status: 0x00010000
EEInfo: Detection location: 1385
EEInfo: Flags: 0
EEInfo: NumberOfParameters: 2
EEInfo: prm[0]: Long val: 16 (0x00000010)
EEInfo: prm[1]: Binary Buffer:
<junk>
at ThrowRpcException(Int32 rpcStatus, String message)
at Microsoft.Exchange.Rpc.RpcClientBase.ThrowRpcExceptionWithEEInfo(Int32 rpcStatus, String routineName)
at Microsoft.Exchange.Rpc.ExchangeClient.ExchangeRpcClient.EcDoConnect_Wrapped(Boolean isEx, Void** pcxh, Byte*
szUserDN, UInt32 ulFlags, UInt32 ulConMod, UInt32 cbLimit, UInt32 ulCpid, UInt32 ulLcidString, UInt32 ulLcidSort,
UInt32 ulIcxrLink, UInt16 usFCanConvertCodePages, UInt32* pcmsPollsMax, UInt32* pcRetry, UInt32* pcmsRetryDelay,
UInt16* picxr, Byte** pszDNPrefix, Byte** pszDisplayName, UInt16* rgwClientVersion, UInt16* rgwServerVersion, UInt16*
rgwBestVersion, UInt32* pulTimeStamp, Byte* rgbAuxIn, UInt32 cbAuxIn, Byte* rgbAuxOut, UInt32* pcbAuxOut)
at Microsoft.Exchange.Rpc.ExchangeClient.ExchangeRpcClient.EcDoConnect_Internal(Boolean isEx, IntPtr& contextHandle,
String userDn, Int32 flags, Int32 sizeLimit, Int32 conMod, Int32 cpid, Int32 lcidString, Int32 lcidSort, Int32
sessionIdLink, Boolean canConvertCodePages, TimeSpan& pollsMax, Int32& retryCount, TimeSpan& retryDelay, String&
dnPrefix, String& displayName, Int16[] clientVersion, Int16[]& serverVersion, Int16[]& bestVersion, Int32& timeStamp,
Byte[] auxIn, Boolean compressAuxIn, Boolean xorMagicAuxIn, Byte[]& auxOut, Int32 maxSizeAuxOut, Boolean&
wasCompressedAuxOut, Boolean& wasXorMagicAuxOut)
at Microsoft.Exchange.Rpc.ExchangeClient.ExchangeRpcClient.EcDoConnectEx(IntPtr& contextHandle, String userDn, Int32
flags, Int32 sizeLimit, Int32 conMod, Int32 cpid, Int32 lcidString, Int32 lcidSort, Int32 sessionIdLink, Boolean
canConvertCodePages, TimeSpan& pollsMax, Int32& retryCount, TimeSpan& retryDelay, String& dnPrefix, String&
displayName, Int16[] clientVersion, Int16[]& serverVersion, Int16[]& bestVersion, Int32& timeStamp, Byte[] auxIn,
Boolean compressAuxIn, Boolean xorMagicAuxIn, Byte[]& auxOut, Int32 maxSizeAuxOut, Boolean& wasCompressedAuxOut,
Boolean& wasXorMagicAuxOut)
at Microsoft.Exchange.Monitoring.MailboxTask.<>c__DisplayClassb.<Connect>b__a()
at Microsoft.Exchange.Monitoring.OutlookConnectivityContext.RpcExceptionWrapper(Func`1 protectedCall)
VERBOSE: [19:08:36.599 GMT] Test-OutlookConnectivity : EcDoConnectEx Result: '1722'
VERBOSE: [19:08:36.599 GMT] Test-OutlookConnectivity : RPC Endpoint = 'PFEXCAS01.internal.domain.name.com'
PFEXCAS01.FVE.AD.... PFEXCAS01.internal.domain.name.com Mailbox::Connect. Failure -1.00
VERBOSE: [19:08:36.615 GMT] Test-OutlookConnectivity : RPC Endpoint = 'PFEXCAS01.internal.domain.name.com'
VERBOSE: [19:08:36.615 GMT] Test-OutlookConnectivity : This step was skipped. This may have been caused by the failure
in a previous scenario. Operation = 'MailboxTask::Logon'.
PFEXCAS01.FVE.AD.... PFEXCAS01.internal.domain.name.com Mailbox::Logon. Skipped -1.00
VERBOSE: [19:08:36.615 GMT] Test-OutlookConnectivity : Admin Audit Log: Entered Handler:OnComplete.
VERBOSE: [19:08:36.615 GMT] Test-OutlookConnectivity : Ending processing &
This was a stupid configuration Heisenbug of some kind. The registry was configured properly for RPC, and the problem was not specific to the OAB, that's just the first thing that's checked. It took a reboot of the CAS servers to get it to work.
Further, the real root cause was that I had recently installed a third CAS server as a test, not in the array. I fed it dummy values for public URLs that weren't reachable, and for some reason (wish I knew) those got written into Autodiscover. I uninstalled the CAS role from that test machine and it cleaned up autodiscover, but still had trouble with RPCPing until the reboot of the remaining CAS servers.