SOE 部署错误 ClassFactory cannot supply requested class问题及解决方案

一、问题描述

  虽然SOE开发已经老早出来了(ArcGIS 10.1 不再支持DCOM开发,所以以往的基于AO+WebService需要转变思路),不过由于跟工作关联性不是很大,一直未系统学习过。网上下了不少资料,计划系统的学习下。由于想搞明白整个使用流程,就先用自带的模板('hello word')创建了个REST的SOE,编译生成.soe文件。

  在ArcGIS Server上进行扩展,并基于MapServer进行发布。启动服务时,报错如下:

  

  网上的解决办法都是说没有安装.net扩展(而且到处都是这样的解决办法)。。。我明显安装了的。。。实在无语,网上搜了半天都找不到。无奈之下,乖乖的把相关资料系统的看了下,终于找到解决问题的办法了(下面的C),做个分享。

二、解决方案

       针对我遇到的这个问题,可以从以下三方面排查: 

  A、.net 扩展支持(我基于.net开发的)

  .net soe 中,原因是在安装ArcGIS server 时候没有启用.net 扩展支持。

  

  B、sdk版本检查

  soe的开采用的arcobjects sdk发版本和部署机器上所拥有的arcobjects sdk的版本不对,如soe开发采用的是arcobjects sdk for .net 10.2而部署在10.1server的机器上,该机器上只有arcobjects sdk for .net 10.1,同样会出现上面的错误。

  C、是否兼容了64位检查(也是我这边之前没注意,死活找不到原因的地方)

  我之前选择的是X86编译,按照官方要求编译项需要兼容64位!!! 后来,我改成AnyCPU,编译.soe文件后,重新搞一遍,一切OK!!!

posted @ 2017-09-22 15:22  简单程序员  阅读(1582)  评论(0编辑  收藏  举报