IEのプロキシ設定がoutlookのOffice 365 Exchange Onlineへの接続の失敗、遅延の原因に

Office 365 Exchange Onlineへの接続の失敗、遅延の原因にIEのプロキシの設定が関連するという情報を発見しました。


Office365のプロキシ設定と言えばwinhttpのプロキシ設定だと思っていたので、動作が重いなどの場合に参考になるかもしれません。


発生する条件、対応策については以下の記事に書かれています。

[ローカル アドレスにはプロキシ サーバーを使用しない] がオンだと、Outlook 起動時の接続が失敗する/接続に時間がかかる/[再試行] をクリックすると接続されるなどの問題が発生する場合がある



【現象】
Outlook 2013/2010/2007 では Internet Explorer の [インターネット オプション]-[接続] タブ-[LAN の設定] にある[ローカル アドレスにはプロキシ サーバーを使用しない] がオンに設定されている状況で
Office 365 Exchange Online 接続する場合に、ネットワークの環境によって以下のような問題が発生する場合があります。

Outlook 起動時に接続が失敗し、起動できない。
Outlook 起動時の接続に時間がかる。
Outlook 起動時の接続に時間がかかりエラーが表示される。[再試行] をクリックすると接続はできる。

Outlook Anywhere で接続する場合に発生する問題であるため、Outlook Anywhere でオンプレミスの Exchange Server に接続する場合も発生します。


【発生条件】
以下のすべての条件を満たす場合に発生します。

a.  Internet Explorer の [インターネット オプション]-[接続] タブ-[LAN の設定] にある
[ローカル アドレスにはプロキシ サーバーを使用しない] がオン
b.  Exchange RPC プロキシサーバー (outlook.office365.com) を IP アドレスに解決できる
c. Internet Explorer の [インターネット オプション]-[接続] タブ-[LAN の設定] にある
[自動構成スクリプトを使用する] に .pac  ファイルが指定されていない


d. プロキシを経由しない HTTPS 接続をファイアウォールでブロックしている  上記のすべての条件ということで、発生条件は限定されますが、「a」については、よくありそうだし、「c」も直接プロキシが指定されている可能性はあります。 

後、「d」もプロキシ経由を前提としていたらあるかもしれません。全部を満たすのはちょっと限定的ですね。 ただ、一応確認しておいてもいいかもしれません。



【原因】
Windows RPC コンポーネントでは、[ローカル アドレスにはプロキシ サーバーを使用しない] がオンで
かつ 接続先の名前を社内向け DNS サーバーで IP アドレスに解決できる場合は、ローカル アドレスとして判断して直接接続を試みる動作となります。

Internet Explorer のプロキシ設定の [例外 (次で始まるアドレスにはプロキシを使用しない)] に設定されていない場合でも直接接続となります。

ただし、 [自動構成スクリプトを使用する] に .pac が指定されている場合は上記の判断は行われません。

このような動作であるため「発生条件」の a b c  のすべての条件を満たす場合はExchange RPC プロキシ サーバーへ HTTPS を使用して直接接続を試みます。

d の条件も満たす場合は、タイムアウトが発生するまで Outlook は処理を継続できず待機する動作となります。この動作は Windows RPC コンポーネントの仕様に依存する問題ですが、弊社では Outlook の動作上支障があるため問題として認識し、WindowsOutlook とでそれぞれ修正プログラムをリリースしました。  

Windows の修正プログラムと Outlook の修正プログラムを適用し、Outlook クライアントでレジストリを作成することでOutlook から接続する際のみ前述の条件をすべて満たす場合に直接接続を試みる動作を抑止し、常にプロキシの設定に従って接続を行う動作にすることができます。 ※直接接続で問題が発生するバグですね。

【対処方法】
方法 1. [ローカル アドレスにはプロキシ サーバーを使用しない] をオフにする
方法 2. Windows の修正プログラムと Outlook の修正プログラムの両方を適用し、
以下のキーにレジストリ EnableForceHttpProxy (DWORD 1) を作成する。

Outlook 2010: HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\RPC
Outlook 2013: HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\RPC 

方法 3. 現在設定しているプロキシ設定の内容を .pac ファイルで定義し
[自動構成スクリプトを使用する] をオンにして .pac ファイルを指定する  (注: http:// で指定する必要がある)
方法 4. ファイアウォールなどで Office 365 サーバーへのポート 443 での接続に対して
ただちに RESET パケットを返すように構成する。
方法 5. 社内向けの DNS サーバーで、Office 365 サーバーの名前 (*.Outlook.com *.office365.com など) を IP アドレスに解決できないようにする。 

参考までに。