在ArcGIS Server中不能直接用New来创建ArcObjects对象,而应该用serverContext.CreateObject

1 web应用调用的是远程的AO组件,这些AO对象都运行在服务器ArcSoc.exe进程中,由服务器上下文(server context)统一来创建(IServerContext::CreateObject),由服务器上下文来统一的管理和操作,比如AO对象之间的交互,释放等。
2 ArcGIS Server是一个可分布式部署的软件,GIS Server和Web应用可以部署在不同的机子上,而web应用的机子上只需要安装ADF运行包,只有ArcObjects的代理,不安装ArcObjects本身,因此web 应用没有能力来创建本地的ArcObjects对象,这也是不能使用New方式来创建ArcObjects的原因。
3 通常我们在Web服务器端通过创建代理类的方式使用AO对象,如
    IServerContext serverContext = webMap.ServerContext;
    AA.Selection o= serverContext.CreateObject("CLSID") as AA.Selection;
    IAA queryResult = o.function(ref fc, ref pt1, ref pt2);


原文地址:http://www.cnblogs.com/flashsky/articles/188391.html

posted on 2007-07-19 13:48  GIS云中飞鹏  阅读(1583)  评论(1编辑  收藏  举报

导航