EWSAPI-通知サブスクリプションの再作成時にエラーが発生しました


81

Office365カレンダーフォルダーへのプルサブスクリプションを操作しているときErrorReadEventsFailedに、SendNotificationリクエストに多くのメッセージが表示されます。このエラーは基本的に、サブスクリプションが見つからなくなり、サーバーが新しい通知を予期しないことを意味します。

Microsoftが推奨するエラー処理を確認すると、解決策はAutodiscoverを使用してExternalEwsUrlまたはEwsPartnerUrlを再検出し、新しいサブスクリプションを作成することです。

Office365では、OAuth2サービスアカウントの組み合わせではAutoDiscoveryサービスがほぼ不可能に見えるためhttps://outlook.office365.com/EWS/Exchange.asmx、メインのEWSエンドポイントとして使用しています。

ただし、特定のカレンダーフォルダーの新しいサブスクリプションを作成しようとすると、一般的な500 ErrorNoRespondingCASInDestinationSiteエラーが発生し続けます。

宛先サイトのどのクライアントアクセスサーバーも要求を処理できなかったため、ExchangeWebサービスは現在この要求に使用できません。

奇妙な部分は、これが初期ErrorReadEventsFailedエラーを受け取った直後にのみ発生することです。たとえば30秒以内に再試行すると、リクエストは問題なく通過します。

調査を行った結果、ほとんどX-AnchorMailboxのユーザーは、サービスアカウントが偽装したいユーザーに対してヘッダーが適切に設定されていることを確認することが役立つように思われました。このヘッダーを再確認しましたが、実際に再サブスクライブのリクエストに沿って送信されています。

この問題は、指数バックオフソリューションによって、または要求が完了するまでX回再試行することで解決できる場合があります。サブスクリプションが「失われる」と、O365サービスはExchangeサーバーのDNSを変更するのに時間がかかるように思われます(私が考えることができるのはそれだけです)。

どんな助けでも大歓迎です!


ほぼ1歳、これに対する解決策を見つけましたか?
マーカスヘグルンド2016年

1
公式なものはありませんが、問題を軽減するために、ある種の「再試行」戦略を実装しました。残念ながら、この問題は、X-AnchorMailboxヘッダーを追加し、リクエスト全体でExchangeバックエンドCookieを使用した後でも発生します。時間外(30秒から1日の間)で自分自身を修正するようです。
jstruzik 2016年

3
わかりました。再試行戦略も実装しました。最も厄介なのは、このエラーが発生したときに、現在のEWSサービスへのサブスクリプションを再作成することだけが必要な場合があることです。しかし、それが機能しない場合は、サービスの新しいインスタンスを作成し、それを自動検出して機能させる必要があります。(クリーニング、再接続..just推測)、そのプロセスは長い間、あなたはこれで終わるのにかかる場合、私は.. Exchangeサーバーが何かをやっていると思う
マーカスホグランド

回答:


3

https://msdn.microsoft.com/en-us/library/office/dn458788(v=exchg.150).aspxにあるドキュメントを参照してください。

サブスクリプションが失われた場合、またはアクセスできなくなった場合は、新しいサブスクリプションを作成し、新しいサブスクリプションに古い透かしを含めないことをお勧めします。古い透かしで再サブスクライブすると、イベントの線形スキャンが発生し、コストがかかります。

代わりに、新しいサブスクリプションを作成し、フォルダーのプロパティを比較して、失われたサブスクリプションと新しいサブスクリプションの間で発生したコンテンツの変更を探します。チェックすることをお勧めする拡張フォルダのプロパティはPR_LOCAL_COMMIT_TIME_MAX (0x670a0040)、およびPR_DELETED_COUNT_TOTAL (0x670b0003)です。

これを行うには、拡張プロパティ定義を作成します。これはあなたを助けるかもしれないと思います!!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.