SOE-动态分段.pdf

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SOE-动态分段

需求:给定一个路径字段、字段值、里程,返回一个点 作者:严瑞 (王知方提供技术指导) 1、打开VS2008 ,新建REST TEMPLATE 工程,命名为LineFerencingSOE 2、生成如下工程,打开LineReferencing.cs,LineReferencingSOE 继承了四个类:  ServicedComponent:如果SOE 要注册成COM 组件,必须要继承这个类。  IServerObjectExtension:这个类包含 Init()和 Shutdown()方法,Init()方法是初 始化ServerObject ,Shutdown()关闭SOE ,一般不需要在这两个方法中再写别 的代码。  IObjectConstruct:包含一个Construct()方法,当SOE 启动的时候会运行这个 方法,在这个方法中主是写在SOE 运行后需要执行的代码,而不是每次请求 需要执行的。比如:获取地图代码,或者你始终操作某一个图层,就可以把 获取该图层的代码写在这里。  IRESTRequestHandler :每次请求服务器执行的代码,也就是说你给Server 传 参后,执行的代码。它下面的 CreateRestSchema()方法是创建资源和操作(举 个例子说资源和操作:比如 FeatureService 就是一个资源,而编辑就是它的 一个操作),SampleOperHandler()方法是处理请求。 3、先不传任何参数,返回一个测试字符串。上面说了SampleOperHandler()是处 理请求的,我们把返回值写到这个方法中,返回值是“Test linereferencing….”, 如下,先注释掉有参数传进的代码。 注:参数是从CreateRestSchema()方法中得到的。 4 、将该工程重新生成一下,目的是生成\ LineReferencingSOE\bin\ Debug 的 LineReferencingSOE.dll 文件。 5、用鼠标选中LineReferencingSOE,右键属性: 设置签名密钥: 保存,并重新生成解决方案。 6、将dll 文件注册成COM 组件(只有注册到COM 组件了,才可以注册到ArcGIS Server 中去),打开Visual Studio2008 命令提示行: 命令行当前路径指向LineReferencingSOE.dll 所在的路径 执行代码:regasm LineReferencingSOE.dll /codebase 7、下面将dll 注册到ArcGIS Server 中。需要新建一个工程,编写代码注册。 新建工程,如下设置: 引入如下几个包: 代码中引入: 8、在Main()函数中编写代码:连接Server ,命名扩展服务名 string extensionName = LineReferencingSOE;是定义了扩展服务的服务名(发布服 务时会在ArcCatalog 或Manager 中的服务类型列表中看到) 9、如果之前注册过同名的SOE,要进行反注册的话,可以用如下的方法: 在命令行中输入“/unregister ”参数, 在代码中判断是否进行反注册,该段代码写到Main 函数里面 增加一个ExtensionRegistered 方法: 继续在Main 函数中增加代码: 所有代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using ESRI.ArcGIS.esriSystem; using ESRI.ArcGIS.Server; using ESRI.ArcGIS; using ESRI.ArcGIS.ADF.Connection.AGS; namespace LineReferencginSOERegistration { class Program { static void Main(string[] args) { //连接Server AGSServerConnection agsServerConnection = new AGSServerConnection ();

文档评论(0)

jiupshaieuk12 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档