AE操作Server(2):获取Server下的服务
来源:互联网 发布:java web角色权限设计 编辑:程序博客网 时间:2024/05/02 00:29
1.引言
本篇中将继续为您介绍使用AE如何获取Server下的所有服务以及服务的信息
2.代码
/// <summary> /// Function:服务信息模板类 /// Coder:WUC /// Date:2016-08-08 /// </summary> public class ServiceModel { /// <summary> /// 编号 /// </summary> public string T_ID { get; set; } /// <summary> /// 服务器ID /// </summary> public string T_ConnectID { get; set; } /// <summary> /// 服务名称 /// </summary> public string T_Name { get; set; } /// <summary> /// 服务地址 /// </summary> public string T_URL { get; set; } /// <summary> /// 数据路径 /// </summary> public string T_DataURL { get; set; } /// <summary> /// 文档地址 /// </summary> public string T_MapURL { get; set; } /// <summary> /// 瓦片路径 /// </summary> public string T_TileURL { get; set; } /// <summary> /// 注册时间 /// </summary> public string T_RegisterDate { get; set; } /// <summary> /// 注册人 /// </summary> public string T_RegisterPerson { get; set; } /// <summary> /// 备注 /// </summary> public string T_Remark { get; set; } /// <summary> /// 服务类型 /// </summary> public string R_MapServiceType { get; set; } /// <summary> /// 服务描述 /// </summary> public string R_MapServiceDescription { get; set; } /// <summary> /// 服务注册状态 /// </summary> public string R_RegisterState { get; set; } /// <summary> /// 服务启停状态 /// </summary> public string R_StartOrStopState { get; set; } /// <summary> /// 服务切片状态 /// </summary> public string R_TileState { get; set; } }
/// <summary> /// 获取服务器下所有的服务 /// </summary> /// <param name="serverModel"></param> /// <returns></returns> public List<ServiceModel> GetAllService(ServerModel serverModel) { if (serverModel == null) return null; List<ServiceModel> mapServiceInfoList = new List<ServiceModel>(); string serviceType = ConstHelper.ServiceType; IServerObjectAdmin pServerObjectAdmin = GetSOA(serverModel); if (pServerObjectAdmin == null) return null; IEnumServerObjectConfiguration pEnumServerObjectConfiguration = pServerObjectAdmin.GetConfigurations(); IServerObjectConfiguration pServerObjectConfiguration; for (int i = 0; i < pEnumServerObjectConfiguration.Count; i++) { pServerObjectConfiguration = pEnumServerObjectConfiguration.Next(); if (pServerObjectConfiguration.TypeName == serviceType) { ServiceModel mapService = new ServiceModel(); mapService.T_Name = pServerObjectConfiguration.Name; mapService.R_MapServiceType = pServerObjectConfiguration.TypeName; mapService.R_MapServiceDescription = pServerObjectConfiguration.Description; IServerObjectConfigurationStatus pStatus = pServerObjectAdmin.GetConfigurationStatus(mapService.T_Name, mapService.R_MapServiceType); mapService.R_StartOrStopState = ConvertStatusToChinese(pStatus); mapServiceInfoList.Add(mapService); } } return mapServiceInfoList; } /// <summary> /// 将服务的状态转换为中文 /// </summary> /// <param name="pStatus"></param> /// <returns></returns> private string ConvertStatusToChinese(IServerObjectConfigurationStatus pStatus) { string statusStr = string.Empty; switch (pStatus.Status) { case esriConfigurationStatus.esriCSDeleted: statusStr = "已删除"; break; case esriConfigurationStatus.esriCSPaused: statusStr = "已暂停"; break; case esriConfigurationStatus.esriCSStarted: statusStr = "已启动"; break; case esriConfigurationStatus.esriCSStarting: statusStr = "正在启动"; break; case esriConfigurationStatus.esriCSStopped: statusStr = "已停止"; break; case esriConfigurationStatus.esriCSStopping: statusStr = "正在停止"; break; } return statusStr; } /// <summary> /// 获取服务器管理类 /// </summary> /// <param name="serverModel"></param> /// <returns></returns> public IServerObjectAdmin GetSOA(ServerModel serverModel) { IAGSServerConnectionAdmin pAGSAdmin = GetSCA(serverModel); if (pAGSAdmin == null) return null; else return pAGSAdmin.ServerObjectAdmin; } /// <summary> /// 获取连接对象 /// </summary> /// <param name="serverModel"></param> /// <returns></returns> public IAGSServerConnectionAdmin GetSCA(ServerModel serverModel) { try { if (serverModel == null) return null; IPropertySet propertySet = new PropertySetClass(); propertySet.SetProperty("URL", serverModel.URL); propertySet.SetProperty("CONNECTIONMODE", esriAGSConnectionMode.esriAGSConnectionModeAdmin); propertySet.SetProperty("SERVERTYPE", esriAGSServerType.esriAGSServerTypeDiscovery); propertySet.SetProperty("USER", serverModel.UserName); propertySet.SetProperty("PASSWORD", serverModel.Password); propertySet.SetProperty("ALLOWINSECURETOKENURL", true); //10.1新增接口 IAGSServerConnectionName3 pConnectName = new AGSServerConnectionNameClass() as IAGSServerConnectionName3; pConnectName.ConnectionProperties = propertySet; IAGSServerConnectionAdmin pAGSAdmin = ((IName)pConnectName).Open() as IAGSServerConnectionAdmin; return pAGSAdmin; } catch { return null; } }
/// <summary> /// 获取指定的服务属性信息 /// </summary> /// <param name="serverModel"></param> /// <param name="name">服务名</param> /// <param name="type">服务类型</param> /// <returns></returns> public Dictionary<string,dynamic> GetConfigPropertyModel(ServerModel serverModel, string name, string type) { if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(type)) return null; IServerObjectAdmin pServerObjAdmin = GetSOA(serverModel); if (pServerObjAdmin == null) return null; try { IServerObjectConfiguration pServerObjectConfiguration = pServerObjAdmin.GetConfiguration(name, type); object names = new object(); object values = new object(); pServerObjectConfiguration.Properties.GetAllProperties(out names, out values); string[] array_names = (string[])names; dynamic[] array_values = (dynamic[])values; Dictionary<string, dynamic> result = new Dictionary<string, dynamic>(); for (int i = 0; i < array_names.Length; i++) { result.Add(array_names[i], array_values[i]); } return result; } catch { return null; } }
0 0
- AE操作Server(2):获取Server下的服务
- AE操作Server(4):服务的启停
- AE操作Server(3):加载服务
- AE操作Server(1):连接
- SQL Server在windows server下的自动备份操作
- Dos下的Sql Server操作
- win2003的server服务
- 试了下Windows Server 2003下的RIS服务
- IOS移动端如何获取ArcGIS Server的服务列表
- ArcEngine获取ArcGIS Server上的地图服务
- 一些操作sql server相关服务的命令行
- 一些操作sql server相关服务的命令行
- 一些操作sql server相关服务的命令行
- 一些操作sql server相关服务的命令行
- 一些操作sql server相关服务的命令行
- ubuntu server 10.4下NFS服务的配置
- 一起玩转SQL Server 2012 下的分析服务
- ubuntu server 10.4下的DHCP服务配置
- HTML5+开发移动app教程4-mui中几种打开页面的区别
- PDF整理
- 网络链接工具类
- 把byte转化为十六进制
- java解压缩zip文件-多个.csv格式表格
- AE操作Server(2):获取Server下的服务
- Hadoop-2.6.0集群安装
- 装机ubuntu14.04,部署JDK
- mongodb 查询某个字段 并删除
- 一个C++源代码在各种编译器中的比较
- webrtc-房间服务器搭建
- 深入理解javascript原型和闭包(10)——this
- hbase存储原理
- 基于Jenkins + Git的PHP项目编译脚本