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 ...
我在 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 ...