EWS API-알림 구독을 다시 만들 때 오류 발생
Office365 일정 폴더에 대한 끌어 오기 구독으로 작업 할 때 요청 ErrorReadEventsFailed
에서 많은 메시지 를 받았습니다 SendNotification
. 이 오류는 본질적으로 구독을 더 이상 찾을 수 없으며 서버가 더 이상 새 알림을 기대하지 않아야 함을 의미합니다.
Microsoft의 권장 오류 처리를 확인 하면 해결 방법은 Autodiscover를 사용하여 ExternalEwsUrl 또는 EwsPartnerUrl을 다시 검색하고 새 구독을 만드는 것입니다.
Office365에서는 OAuth2 서비스 계정 조합으로 AutoDiscovery 서비스가 거의 불가능 해 보이므로 https://outlook.office365.com/EWS/Exchange.asmx
기본 EWS 끝점 으로 사용 하고 있습니다.
그러나 특정 일정 폴더에 대한 새 구독을 만들려고하면 일반적인 500 ErrorNoRespondingCASInDestinationSite
오류가 계속 발생합니다.
대상 사이트의 클라이언트 액세스 서버가 요청을 처리 할 수 없기 때문에 현재이 요청에 대해 Exchange 웹 서비스를 사용할 수 없습니다.
이상한 부분은 이것이 초기 ErrorReadEventsFailed
오류를 받은 직후에만 발생한다는 것 입니다. 예를 들어 30 초 후에 다시 시도하면 요청이 문제없이 진행됩니다.
조사를 한 결과 대부분의 사용자 X-AnchorMailbox
는 서비스 계정이 가장하려는 사용자에 대해 헤더가 올바르게 설정되었는지 확인하는 것이 도움이되는 것으로 보입니다 . 이 헤더를 다시 확인했으며 실제로 재 구독 요청과 함께 전송됩니다.
이 문제는 지수 백 오프 솔루션으로 해결하거나 요청이 통과 될 때까지 X 번만 재 시도하여 해결할 수 있습니다. 구독이 "손실"되면 O365 서비스가 Exchange 서버의 DNS를 변경하는 데 시간이 필요한 것 같습니다 (내가 생각할 수있는 유일한 것입니다).
어떤 도움이라도 대단히 감사하겠습니다!
https://msdn.microsoft.com/en-us/library/office/dn458788(v=exchg.150).aspx 의 설명서가 제공됩니다.
구독이 손실되거나 더 이상 액세스 할 수없는 경우 새 구독을 만들고 새 구독에 이전 워터 마크를 포함하지 않는 것이 가장 좋습니다. 이전 워터 마크로 다시 구독하면 이벤트에 대한 선형 스캔이 발생하므로 비용이 많이 듭니다.
대신 새 구독을 만들고 폴더 속성을 비교하여 손실 된 구독과 새 구독 사이에 발생한 콘텐츠 변경 사항을 찾습니다. 확인하도록 권장하는 확장 폴더 속성은 PR_LOCAL_COMMIT_TIME_MAX (0x670a0040)
및 PR_DELETED_COUNT_TOTAL (0x670b0003)
입니다.
확장 속성 정의를 만들어이를 수행 할 수 있습니다. 도움이 될 것 같아요 !!
'your programing' 카테고리의 다른 글
Android Studio / AVD '게스트 DNS IP를 번역 할 수 없음'오류 메시지를 방지하는 방법은 무엇입니까? (0) | 2020.10.08 |
---|---|
P / Invoke 인수가 전달 될 때 순서가 잘못되는 원인은 무엇입니까? (0) | 2020.10.08 |
더 많은 정신 광기-파서 유형 (규칙 대 int_parser <>) 및 메타 프로그래밍 기술 (0) | 2020.10.08 |
이 앱에는 구성된 Android 키 해시가 없습니다. (0) | 2020.10.08 |
ListView에 항목을 빠르게 추가하는 방법은 무엇입니까? (0) | 2020.10.08 |