您的位置:首页 > 其它

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

2015-05-07 10:06 363 查看
一、程序集(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等)

            IEnumServerObjectTypeInfo pEnumTypeInfo = 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开发
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: