none
CDatabase で MS ACCESSのaccdbへアクセスすると、下位ルーチンが勝手にmicrosoftのWEBサイトにパケットを送信する RRS feed

  • 質問

  • こんにちは。

    Visual Studio2017 Pro で開発したWindows フォームアプリケーションで、
    CDatabase クラスオブジェクトを利用して、MS ACCESS の *.accdb にアクセスしています。

    スタンドアロンで動作するプログラムであり、accdb をローカル端末の Cドライブに置いています。

    リソースメータを見ていたら、スタンドアロンで動くプログラムなのに、
    CDatabase の Close 関数が呼ばれたときに、マイクロソフトのWEBサイトにパケットを送信していることが
    わかりました。

    その際、Windows10端末では、7割ぐらいの確率で、20秒 以上、プログラムが固まってしまいます。
    その後制御が戻って、正常動作します。


    当該プログラムが送信している宛先アドレスは、世界中のマイクロソフトのアドレスでした。

    52.109.124.23 シンガポール
    52.109.124.18 シンガポール
    52.109.88.37 オランダアムステルダム
    52.109.76.36 アイルランドダブリン
    52.109.76.32 アイルランドダブリン
    52.109.8.19 香港
    52.109.120.22 香港
    52.109.12.18 ワシントンDC

    同じプログラムを Windows7端末で起動すると、そのようなパケット送信は発生しません。

    Windows10端末をLANから切り離して、当該プログラムを起動してみたのですが、その場合も、
    瞬時にレスポンスが返ってきました。
    LANに接続していないと、パケット送信自体が出来なくて、そのままスルーして
    瞬時にレスポンスが返ってきたのではないかと感じています。

    当該プログラムをWin10端末で利用する際に、毎回、LANから切り離して運用するのは現実的でないため、
    どなたか、解決方法をアドバイスしていただけないでしょうか?


    [環境]
    Windows10 Professional SAC 1709(64bit)
    Visual Studio Professional 2017
    .Net Framework 4.7.1 (プログラムでは.Net Frameworkを利用していません。)
    Windows SDK 10.0.16299.0
    MS Office Professional Plus 2016(32bit版)

    MFCの利用 共有DLLでMFCを使う


    <ソースより>
    データベースを開くときは、
    Cdatabase の OpenEx を利用して、第2引数には、CDatabase::useCursorLib | CDatabase::noOdbcDialog を渡しています。

    <追記>

    Windows10 Professional の端末で、MS Office2010が導入されていると、この現象は発生しませんでした。

    MS ACCESS2016 の ODBCドライバとかが、原因なかんじです。

    <追記>2018/3/22

    内容追記し、件名を修正しました。


    • 編集済み KON_ 2018年3月22日 3:44 内容追記、件名修正
    2018年3月19日 6:10