SimpleSOE

创建并注册SOE类库

1.定位到相应的C#解决方案的文件夹;

2.打开解决方案;

3.生成解决方案,这样就得到了SimpleSOEInterfaces.dll、SimpleSOE.dll(均在对应的Debug目录下);

 

4.打开vs命令提示符,设置工作路径为SimpleSOEInterfaces.dll所在的路径, This assembly contains an interface that needs to be accessible by a COM-aware
client, such as ArcObjects running in a server object container (SOC) process (ArcSOC.exe);

5.在vs命令提示符中,使用下面的命令来产生该接口的一个类库:regasm SimpleSOEInterface.dll /tlb:SimpleSOEInterface.tlb。regasm工具会读取程序集的元数据。程序集只包含接口类型,所以生成类库时必须使用/tlb选项。tlb文件的位置就被存储在注册的位置。

6.在ArcGIS SOC机器上注册SimpleSOEInterfaces.dll,同样,在.Net 客户机上注册。确保ArcGIS SOC用户帐号对这个注册类库有读、执行权限。同样,在客户应用程序的机器上,确保用户应用程序有对这个注册类库的读、执行权限。

7.使用下面的命令可以取消注册这个类型库:regasm /unregister SimpleSOEInterface.dll /tlb:SimpleSOEInterface.tlb;

 

8.打开vs命令提示符,设置工作路径为SimpleSOE.dll所在的路径;

9.为了使COM客户端(比如ArcGISSOC.exe)能够使用,我们通过组件对象模型来注册.NET程序集。具体操作如下:regasm SimpleSOE.dll /codebase

10.在ArcGIS SOC机器上,注册.Net程序集和类库。确保ArcGIS SOC用户账户对注册程序集和类库的目录有读、执行权限。

11.取消注册程序集和类库:regasm /unregister SimpleSOE.dll

 

——总结来说就两点:打开解决方案,注册dll(两个都要哦)

 

 

通过ArcGIS Server 注册SOE

1.在vs中,右键RegisterSOE项目,将其设置为启动项目;

2.F5,生成并运行该项目,成功后,会出现提示信息:成功通过ArcGIS Server注册SOE,接下来我们就可以在ServerTypeExt.dat(<ArcGIS Install>\server\system\ServerTypesExt.dat)文件中看到该SOE的描述信息了。

3.取消注册该SOE的方法:右键RegisterSOE项目,在Debug选项卡,在“命令行参数”文本框中写上:/unregister,再次运行该项目即可。

 

 

使用ArcCatalog来配置自定义的SOE

1.打开ArcCatalog,打开一个连接到ArcGIS Server 的实例(SOE注册到该实例上的哦,我这里就直接都是本机啦,就是ArcGIS Server 的地址是localhost);

2.右键该实例,增加新服务,设置服务的名字和相关的参数,服务类型设置为MapService,在“Capabilities”选项卡里面,勾选SimpleSOE复选框;

3.完成配置,并启动该服务。

 

 

使用Windows窗体程序(客户端程序)

1.在vs中,将SimpleSOE_WinFormApp设置为启动项目;

2.如果还没有添加引用SImpleSOEInterfaces.dll,那就添加一下哦!

 

 

运行效果

1.按下“Execute”按钮,一个缓冲区多边形在地图中间渲染出来,下面你就探索后台的代码吧,看他是怎样在服务上下文中建立起远程DCOM对SOE的调用的!

 

 

 

posted @ 2012-08-21 15:37  ccjcjc  阅读(373)  评论(0编辑  收藏  举报