Dcom代理 Server

简介:  本地连接可以使用Dcom代理,而本质上DCOM代理是利用AO对象和ArcGIS Server 服务器对象打交道。所以本地连接,客户端就要有AO对象,当然也可以直接利用AO API(可以认为是远端服务器对象的AO代理),而不使用Dcom代理,(但是使用Dcom代理,因为代理和值对象是在客户端,...

 

 本地连接可以使用Dcom代理,而本质上DCOM代理是利用AO对象和ArcGIS Server 服务器对象打交道。所以本地连接,客户端就要有AO对象,当然也可以直接利用AO API(可以认为是远端服务器对象的AO代理),而不使用Dcom代理,(但是使用Dcom代理,因为代理和值对象是在客户端,所以要比AO快(AO proxies的所有操作都是在远程调用的基础上完成的,但是利用AO我们可以访问到远端的细粒度的AO对象)),而代理属于Soap的范畴,而获取Dcom代理,目前我发现两种方法,如下:

 

   ESRI.ArcGIS.ADF.Identity id = new ESRI.ArcGIS.ADF.Identity(username, password, domain);

       ESRI.ArcGIS.ADF.ArcGISServer.MapServerDcomProxy mapserver_dcom =

           (MapServerDcomProxy) MapServerDcomProxy.Create(SOMname, servicename, id);

       // do something with the DCOM proxy

       mapserver_dcom.Dispose();

        

ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection connection = null; 
ESRI.ArcGIS.Server.IServerContext serverContext = null; 
  
try 

    connection = new ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection(); 
  
    connection.Host = "localhost"; 
    connection.Connect(); 
  
    ESRI.ArcGIS.Server.IServerObjectManager serverObjectManager = connection.ServerObjectManager; 
  
    serverContext = serverObjectManager.CreateServerContext("MyMapService", "MapServer"); 
  
    ESRI.ArcGIS.ADF.ArcGISServer.MapServerDcomProxy mapservice = new 
        ESRI.ArcGIS.ADF.ArcGISServer.MapServerDcomProxy(serverContext, true); 
  
    ESRI.ArcGIS.ADF.ArcGISServer.MapServerInfo mapinfo = mapservice.GetServerInfo(mapservice.GetDefaultMapName()); 
    ESRI.ArcGIS.ADF.ArcGISServer.MapDescription mapdesc = mapinfo.DefaultMapDescription; 
  
    ESRI.ArcGIS.ADF.ArcGISServer.ImageType imgtype = new ESRI.ArcGIS.ADF.ArcGISServer.ImageType(); 
    imgtype.ImageFormat = ESRI.ArcGIS.ADF.ArcGISServer.esriImageFormat.esriImagePNG; 
    imgtype.ImageReturnType = ESRI.ArcGIS.ADF.ArcGISServer.esriImageReturnType.esriImageReturnURL; 
  
    ESRI.ArcGIS.ADF.ArcGISServer.ImageDisplay imgdisp =  
        new ESRI.ArcGIS.ADF.ArcGISServer.ImageDisplay(); 
    imgdisp.ImageHeight = 500; 
    imgdisp.ImageWidth = 500; 
    imgdisp.ImageDPI = 96; 
  
    ESRI.ArcGIS.ADF.ArcGISServer.ImageDescription imgdesc =  
        new ESRI.ArcGIS.ADF.ArcGISServer.ImageDescription(); 
    imgdesc.ImageDisplay = imgdisp; 
    imgdesc.ImageType = imgtype; 
  
    ESRI.ArcGIS.ADF.ArcGISServer.MapImage mapimg = mapservice.ExportMapImage(mapdesc, imgdesc); 
  
    System.Net.HttpWebRequest webreq = System.Net.WebRequest.Create(mapimg.ImageURL) as HttpWebRequest; 
    System.Net.HttpWebResponse webresp = webreq.GetResponse() as HttpWebResponse; 
    System.Drawing.Image img = System.Drawing.Image.FromStream(webresp.GetResponseStream()); 

catch (Exception ex){} 
finally 

    serverContext.ReleaseContext(); 
    connection.Dispose(); 
}

相关文章
|
监控 前端开发
STM32F103标准外设库——RCC时钟(六)
STM32F103标准外设库——RCC时钟(六)
1555 0
STM32F103标准外设库——RCC时钟(六)
|
运维 Devops jenkins
十六年所思所感,聊聊这些年我所经历的 DevOps 系统
从 2008 年开始,我陆陆续续参与了多个 DevOps 系统的建设,如今,审视这些系统的建设初衷和它们的设计思路或遇到的问题,依然有不少借鉴意义。我会按照时间顺序,把每个 DevOps 系统的特点,诞生的背景,以及在当时所主要解决的问题做一个概要的介绍,同时,我们也会以今天的视角再次审视这些问题,来看下同样的问题,经过十几年的发展,解决方案上有哪些不同。
|
JavaScript 前端开发
vue实现登录界面
vue实现登录界面
341 0
|
数据采集 XML 缓存
心得经验总结:爬虫(爬虫原理与数据抓取)
心得经验总结:爬虫(爬虫原理与数据抓取)
338 0
|
数据库 数据安全/隐私保护 Python
python图形页面:entry输入框
python图形页面:entry输入框
|
NoSQL Redis 开发者
redis为什么要设计成单线程
说到Redis的特点,很容易想到的就是属于Nosql,速度快。再说到Redis为什么速度快,你头脑中第一闪过的可能就是说Redis基于内存、单线程执行了。 基于内存这点不用过多解释,Redis将数据存在内存中,没有了磁盘I/O过程。但要说到单线程为什么快,不熟悉的人可能说不清楚。接下来就说说单线程的Redis为什么快,开发者是怎么设计的呢。
264 0
redis为什么要设计成单线程
|
大数据 Apache 流计算
零基础入门:从0到1学会 Apache Flink
大数据实时计算及 Apache Flink 年度Flink 年度学习资料大礼包,300+页实战应用精华总结!
312 0
零基础入门:从0到1学会 Apache Flink
|
JSON JavaScript 前端开发
javascript挑战编程技能-第九题:数据结构
javascript挑战编程技能-第九题:数据结构
179 0
|
Linux
linux 修改服务器系统时间
前言 因项目需求需要修改统一系统时间 详情配置如下: 在CentOS 7里面有一个命令timedatectl可以帮助我们修改服务器的时区。 1. 查看服务器里的时间设置 timedatectl ,它等同于 timedatectl status : 2. 了解 timedatectl 命令的各个参数: 3. 设置时间 下面看下CentOS修改服务器系统时间 linux安装完毕后,一般都是国外的世界,一点都不方便设置任务,或者导致网站获取本地的时间错乱,所以就需要把服务器的时间改为和本地时间一致,也就是换成中国的时间。
1854 0