添加SOE后服务无法启动的几种可能原因

在进行SOE扩展开发的过程中,经常会遇到添加SOE后宿主地图服务无法启动的问题,下面就对之前遇到的添加SOE后服务无法启动的几种可能原因及其解决方法总结一下,供大家参考:

一、问题描述:

部署完SOE,对某个服务启用部署的SOE时,出现如下错误信息:
service failed to start
xxxx.MapServer:
ClassFactory cannot supply requested class

问题原因:

原因是在安装ArcGIS Server的时候没有启用.Net的扩展支持。

解决办法:

修复ArcGIS Server,启用.Net扩展支持,同时注意要有对应的.Net Framework,如下图:

添加SOE后服务无法启动的几种可能原因

二、问题描述:

启用SOE时,遇到下面报错信息“Service failed to start”:
添加SOE后服务无法启动的几种可能原因

问题原因1:

开发用的SOE模板与部署机子上的Server版本不一致。比如用ArcObjects 10.3的SOE模板开发的程序部署在10.2上,尽管已经在10.2中重新编译了,但是没有用ArcObjects 10.2的SOE模板,则出现上图错误。

解决办法1:

在ArcObjects 10.2中新建SOE模板工程,把原有代码拷贝过来重新编译即可。

问题原因2:

.Net Framework版本不一致导致。比如SOE程序是用VS2010编译的,使用的.Net Framework版本为4.0,但是Server上只装了.Net Framework 3.5,导致服务无法启动。

解决办法2:

SOE程序使用.Net Framework 3.5重新编译或者Server机上安装.Net Framework 4.0即可。

问题原因3:

开发时程序的目标平台设置的x86,也会报这个错。

解决办法3:

将程序的目标平台改为x64或者AnyCPU重新编译即可。

以上都是指的.Net SOE开发中的常见问题,如果是在java版本中,通常是Java JDK版本的问题。比如在Java JDK 1.6下出错,但1.7下正常,这时要注意查看ArcObjects版本的系统需求,检查该JDK是否满足其支持的JDK版本。

参考链接:

https://www.cnblogs.com/myyouthlife/p/3284291.html