ArcGIS Server 服务器端扩展,SOE代码调试时,需要经常重新编译、替换地图服务中的扩展,
由于未知问题,本地开发环境包含SOE的地图服务,每次重启都需要耗费相当长的时间,大体上20多分钟,每次系统刚重启时,会好一些,大体五六分钟的样子。
写代码的时候,难免有各种细节的问题,每次做服务器端扩展时,本来很简单的功能,调试中的等待就要花费相当长的时间。
虽然地图服务重启特别卡,有时候等20分钟后,由于未知原因,最新的soe扩展无法覆盖原来的soe扩展,导致辛苦等了半天后,调试的还不是最新的代码。
多方排解,找不到解决问题的方法。
后来阴差阳错,找到了一个相对快一些的方法。按照如下步骤进行。
(1)停止部署该soe的地图服务
(2)在地图服务的功能页中,取消勾选该SOE功能
(3)在扩展管理页中,删除该扩展
(4)在windows 任务管理器中,重启ArcGIS Server服务
(5)服务重启完成后,添加新编译的soe文件
(6)在相应的地图服务中,勾选该soe扩展功能,并保存地图服务
(7)启动地图服务。
上述步骤可以解决地图服务特别卡的问题,但是对于有时候soe扩展无法覆盖的问题,偶尔还会出现。
经过测试发现,当出现无法覆盖时,在原来添加的soe扩展的文件路径中,该soe文件是无法删除的,或者删除之后,刷新一下,该soe文件又重新生成。遇到这种问题,没找到其他解决方式,只能重启系统
为了绕过上述问题,在soe中增加了一个返回版本标识的方法,防止运行的soe程序不是最新的。