No edit session in the progress
运行环境:开发环境:Windows7旗舰版64bit、VisualStudio2008 With SP1、ArcEngine10.0、NetFrameWork4.0、IIS7和C#开发语言。
问题描述:通过AE编写的WebService在进行调试时,在网络进行流向初始化的时候发生错误“No edit session in the progress”(有时也会提示“这个集合中找不到此项目”错误,两者通过同一方式处理即可)。
看到这个错误首先认为是没有开启编辑功能导致的,但是我的编辑确实开启了,通过IsBeingEdited()方法确定编辑状态没有问题。
网上很少想过错误的信息,大体看了一下分为以下几种吧:
1、没有开启编辑状态。(这个通过检查后直接排除)
2、开启编辑的工作空间下不包含所需要编辑的要素,即编辑空间不一致的问题。(我通过反复检查后确定所编辑的网络以及构成网络的所有数据均在同一个数据集下面,开启的为数据集的编辑状态,两者在编辑空间上是一致的,因此这个也排除掉)
3、可能使用高级编辑会导致这个问题,删除网络等即可正常使用。(我用的就是网络,网络肯定不可以删除啊!!!这个也排除掉了)
以为之前一直是做CS项目,第一次编写WebService,那我觉得这是否是因为WebService引发的问题呢,因此我搭建了一个CS项目测试程序,结果还是出现同样的问题。
难道是网络的问题?因此我在相同的代码下,将网络流向初始化代码修改为最基本的要素编辑代码(简单的属性赋值),结果同样出现错误,但是错误提示信息发生改变:
Objects in this class cannot be updated outside an edit session
在网上查看了这个错误的解决方式,其中一部分解决方式和之前错误的解决方式相同(即上面列出的三条),但是也多了其他几种处理方法:
1、2、3同上面列出的三条。
4、检查ArcGIS Engine的License文件的授权是否设置了ArcGIS Engine 的GEOEdit权限。
5、检查是否注册了版本。(通过检查没有问题)
6、检查是否在数据库有与该图层有关系的图层,如拓扑关系,相连的注记层等。这些图层会占用编辑图层,出现错误。(我的所有数据都在一起,开启整体编辑,应该没有问题)
看到这个我将重点放在第四条,于是在编辑之前方式许可初始化的代码,可是还是不行。后来查看许可初始化知道要在程序初始化时候进行初始化处理,因此将代码移植到程序初始化中,再次运行程序,问题解决!
下面附程序许可初始化代码:
1: ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
2: AoInitialize aoi = new AoInitializeClass();
3: esriLicenseProductCode productCode = esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB;
4: if (aoi.IsProductCodeAvailable(productCode) == esriLicenseStatus.esriLicenseAvailable)
5: {
6: aoi.IsProductCodeAvailable(productCode);
7: if (aoi.Initialize(productCode) != ESRI.ArcGIS.esriSystem.esriLicenseStatus.esriLicenseCheckedOut)
8: aoIniMsg = ",请检查ArcEngine中的GDBEdit许可!";
9: }
10: else
11: aoIniMsg = ",请检查ArcEngine中的GDBEdit许可!";
整个问题我弄了两三天才解决,真费事啊,不过后来在WebService部署的时候又出现了这个问题,原因是初始化许可失败导致的,估计和程序锁部署的服务器有关(但是查看服务器上的Desktop和AE许可均没有问题),好费事啊(又弄了一天),后来不知道咋地重新把ArcGIS和IIS相关服务都重启了一下就可以了,希望知道原因的同志们告诉一下,在此先行谢过!
No edit session in the progress的更多相关文章
- Session fixation--wiki
http://en.wikipedia.org/wiki/Session_fixation In computer network security, session fixation attacks ...
- WLST 命令和变量
下列部分将详细描述 WLST 命令和变量.主题包括: WSLT 命令类别概述 浏览命令 控制命令 部署命令 诊断命令 编辑命令 信息命令 生命周期命令 节点管理器命令 树命令 W ...
- 03-13_WLST导航和定位MBean
本文重点:WLST导航和定位MBean MBean切换图 如上:红色的字体表示切换的命令.ls和cd是在当前树下切换,其他命令是在不同树之间切换. 其中: DomainMBeanServer有 ...
- 第七章 : Git 介绍 (上)[Learn Android Studio 汉化教程]
Learn Android Studio 汉化教程 [翻译]Git介绍 Git版本控制系统(VCS)快速成为Android应用程序开发以及常规的软件编程领域内的事实标准.有别于需要中心服务器支持的早期 ...
- hbase官方文档(转)
FROM:http://www.just4e.com/hbase.html Apache HBase™ 参考指南 HBase 官方文档中文版 Copyright © 2012 Apache Soft ...
- HBase官方文档
HBase官方文档 目录 序 1. 入门 1.1. 介绍 1.2. 快速开始 2. Apache HBase (TM)配置 2.1. 基础条件 2.2. HBase 运行模式: 独立和分布式 2.3. ...
- What are Unix swap (.swp) files?
原文: http://www.networkworld.com/article/2931534/it-management/what-are-unix-swap-swp-files.html ---- ...
- 裁剪要素出现错误 :HRESULT:0x80040239
pFeatureBuffer = pOutFeaCls.CreateFeatureBuffer(); pFeatureCursor = pOutFeaCls.Inser ...
- arcmap Command
The information in this document is useful if you are trying to programmatically find a built-in com ...
随机推荐
- SQLyog-直接导出JSON格式的数据
前言:以前做过的一个项目,有这样的一个需求使用搜索引擎来查询对应的区域信息,不过区域信息要先导出来,并且数据格式是JSON格式的,在程序中能实现这个需求,不过下面的这种方法更加的简单,通过 ...
- 2015.05.12:json的常用处理方式
1:json的介绍:json常用于前台与后台的数据传输 传递时需将json对象转换为json字符 JSON.stringify(); 2:json格式的查看应用:JsonView 3:后台获取到js ...
- 《从零开始做一个MEAN全栈项目》(3)
欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 上一篇文章给大家讲了一下本项目的开发计划,这一章将会开始着手搭建一个MEAN项目.千里之行,始于足下, ...
- 如何在IDEA上 添加GIT和maven、mybatis插件
IDEA工具上,添加GIT和maven.mybatis插件,相对比较简单: 首先下载GIT.maven.mybatis. 先添加GIT插件: 首先在IDEA找到file中找到setting,然后搜索g ...
- Linux下随机密码生成器
参考资料: 1:http://justwinit.cn/post/5164/ 2:http://www.linuxidc.com/Linux/2012-11/73687.htm
- Android IOS WebRTC 音视频开发总结(八十二)-- VP8对VP9,质量还是码率?
本文主要介绍VP9(我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:blacke ...
- 数据库的NULL值讨论
有许多关于数据库设计中NULL的讨论,我个人的设计习惯是,不使用NULL值. 我所设计所有表都是Not Null的字段的,尤其是我主要做数据仓库的表设计.刚开始使用数据库时,就栽了一次.一个Group ...
- Js日期函数Date格式化扩展
prototype是向对象中添加属性和方法,返回对象类型原型的引用,例如对js中日期函数Date进行扩展: Date.prototype.Format = function (fmt) { var o ...
- 查找jsp页面报错技巧
在报错跳转页面打印错误信息<div>系统执行发生错误,信息描述如下:</div> <div>错误状态代码是:${pageContext.errorData.stat ...
- c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例
c++ stl集合set介绍 c++ stl集合(Set)是一种包含已排序对象的关联容器.set/multiset会根据待定的排序准则,自动将元素排序.两者不同在于前者不允许元素重复,而后者允许. 1 ...