探究AE对ArcGIS Server的连接和控…

来源:互联网 发布:windows中的ncmdshow 编辑:程序博客网 时间:2024/06/06 06:33

一、程序集(ESRI.ArcGIS.Server)
1、IGISServerConnection
当应用程序需要使用ArcGIS Server上发布的服务,或者需要在Server上创建新的对象,或者希望获取对Server的管理权限时,可以使用该接口连接到ArcGIS Server
使用IGISServerConnection连接ArcGIS Server时,运行应用程序账户必须在Server的agsusers或者agsadmin组里面
2、两个接口
IServerObjectManager: 获取Server支持服务类型,服务列表,服务目录,获取已发布的某一个服务的相关信息,修改已发布的某一个服务的内容(比如往Map增加一个图层)
IServerObjectAdmin: 权限更高,包括发布服务、删除服务、启动或停止服务、更改服务配置属性信息等
3、使用权限
IServerObjectManager: 运行应用程序的账户必须在ArcGIS Server的agsusers组里面;
IServerObjectAdmin: 运行应用程序的账户必须在ArcGIS Server的agsadmin组里面;
4、两个接口的使用举例
            // 获取发布的服务列表(XSemap:MapServer)
            IGISServerConnection2 gisServerConnection new GISServerConnection() as IGISServerConnection2;
            gisServerConnection.Connect("machineName");  // 服务器机器名
            IServerObjectManager serverObjectManager gisServerConnection.ServerObjectManager;
            IEnumServerObjectConfigurationInfo enumConfigInfo serverObjectManager.GetConfigurationInfos();
            IServerObjectConfigurationInfo configInfo enumConfigInfo.Next();
            while (configInfo != null)   // 列举所有发布的服务及类型(MapServer等)
            {
                MessageBox.Show(configInfo.Name ": configInfo.TypeName);
                configInfo enumConfigInfo.Next();
            }


            // 获取服务器目录列表(如arcgiscache/arcgisjobs/arcgisoutput)
            IEnumServerDirectoryInfo pEnumSDirInfo serverObjectManager.GetServerDirectoryInfos();
            IServerDirectoryInfo pSDirInfo pEnumSDirInfo.Next();
            while (pSDirInfo != null)   
            {
                MessageBox.Show(pSDirInfo.Path);
                pSDirInfo pEnumSDirInfo.Next();
            }

            // 获取可发布的地图服务类型(如MapServer,ImageServer,GPServer,GeoCodeServer等)
            IEnumServerObjectTypeInfpEnumTypeInfo serverObjectManager.GetTypeInfos();
            IServerObjectTypeInfo pTypeInfo  pEnumTypeInfo.Next();
            while (pTypeInfo  != null)   
            {
                MessageBox.Show(pTypeInfo.Name);
                pTypeInfo pEnumTypeInfo.Next();
            }

            // ServerContext是服务器上的一个进程,你可以创建新的进程,也可以使用现有的进程
            // IServerContext提供操作某一个进程内对象的方法,包括在进程内创建新的对象,删除对象、更新对象等等
            // (1)创建一个空的ServerContext,并在其中添加一个Polygon
            IGISServerConnection gisServerConnection new GISServerConnection();
            gisServerConnection.Connect("3EDRYUFUUEMCCKS");
            IServerObjectManager4 serverObjectManager (IServerObjectManager4)gisServerConnection.ServerObjectManager;
            IServerContext serverContext serverObjectManager.CreateServerContext("","");
            // IServerContext serverContext serverObjectManager.CreateServerContext("XSemap", "MapServer"); 获取已发布某一个地图服务进程
            IPointCollection4 gonColl (IPointCollection4)(serverContext.CreateObject("esriGeometry.Polygon")); 
二、探究了下,程序集(ESRI.ArcGIS.GISClient)基本可以实现与上一个程序集相同的功能,分别通过IAGSServerConnection 接口和IAGSServerConnectionAdmin接口
三、注意:两个程序集对Server的深度控制都只限于局域网中使用 

#ae开发
0 0
原创粉丝点击