DevExpress 地图控件未加载 - Windows 服务

DevExpress Map Control not Loading - Windows Service

我在 windows 服务中使用 DevExpress XtraMap MapControl 来生成地图,将它们保存为图像并将它们添加到报告中。通过 WinForms 项目使用此设置时,我的设置运行良好,但是当我将相同的代码复制到 Windows 服务时,它无法保存图像。 WinForms 项目中的代码:

 MapControl map;
        public void Form1_Load_1(object sender, EventArgs e)
        {
            // Create a map control.
            map = new MapControl();

            // Create an image tiles layer and add it to the map.
            ImageTilesLayer tilesLayer = new ImageTilesLayer();
            tilesLayer.DataLoaded += Map_DataLoaded;
            map.Layers.Add(tilesLayer);

            BingMapDataProvider prov = new BingMapDataProvider();
            prov.BingKey = "MY_BING_KEY";
            tilesLayer.DataProvider = prov;

            map.ZoomLevel = 2;
            map.CenterPoint = new GeoPoint(38, -100);

            map.ResumeRender();
            this.Controls.Add(map);

        }

        private void Map_DataLoaded(object sender, EventArgs e)
        {
            var loc = @"C:[=11=]Temp\Map\" + DateTime.Now.Ticks.ToString() + ".png";
            map.ExportToImage(loc, System.Drawing.Imaging.ImageFormat.Png);
        }

此代码在 Windows 服务中的 运行 无法保存图像。唯一的区别是,在 Windows 服务中,删除了以下行:

 this.Controls.Add(map);

从 winforms 项目中删除该行时,它也无法 load/save。我只能假设有一个事件是 triggered/monitored 将此控件添加到表单触发我不知道?

我相信,地图控件不打算在不显示它的情况下使用(或者至少不创建它的句柄)。因此,当从 Windows-服务访问 Bing 地图时,我建议您 to use the Bing Imagery API directly.

p.s。微软 Bing Maps Terms of Use 不允许

3.2 (b) Copy, store, archive, or create a database of the Content ...