运行环境:开发环境: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的更多相关文章

  1. Session fixation--wiki

    http://en.wikipedia.org/wiki/Session_fixation In computer network security, session fixation attacks ...

  2. WLST 命令和变量

    下列部分将详细描述 WLST 命令和变量.主题包括:  WSLT 命令类别概述  浏览命令  控制命令  部署命令  诊断命令  编辑命令  信息命令  生命周期命令  节点管理器命令  树命令  W ...

  3. 03-13_WLST导航和定位MBean

    本文重点:WLST导航和定位MBean     MBean切换图 如上:红色的字体表示切换的命令.ls和cd是在当前树下切换,其他命令是在不同树之间切换. 其中: DomainMBeanServer有 ...

  4. 第七章 : Git 介绍 (上)[Learn Android Studio 汉化教程]

    Learn Android Studio 汉化教程 [翻译]Git介绍 Git版本控制系统(VCS)快速成为Android应用程序开发以及常规的软件编程领域内的事实标准.有别于需要中心服务器支持的早期 ...

  5. hbase官方文档(转)

    FROM:http://www.just4e.com/hbase.html Apache HBase™ 参考指南  HBase 官方文档中文版 Copyright © 2012 Apache Soft ...

  6. HBase官方文档

    HBase官方文档 目录 序 1. 入门 1.1. 介绍 1.2. 快速开始 2. Apache HBase (TM)配置 2.1. 基础条件 2.2. HBase 运行模式: 独立和分布式 2.3. ...

  7. What are Unix swap (.swp) files?

    原文: http://www.networkworld.com/article/2931534/it-management/what-are-unix-swap-swp-files.html ---- ...

  8. 裁剪要素出现错误 :HRESULT:0x80040239

    pFeatureBuffer = pOutFeaCls.CreateFeatureBuffer();                 pFeatureCursor = pOutFeaCls.Inser ...

  9. arcmap Command

    The information in this document is useful if you are trying to programmatically find a built-in com ...

随机推荐

  1. HTML解析原理

    Web页面运行在各种各样的浏览器当中,浏览器载入.渲染页面的速度直接影响着用户体验 简单地说,页面渲染就是浏览器将html代码根据CSS定义的规则显示在浏览器窗口中的这个过程.先来大致了解一下浏览器都 ...

  2. 《JavaScript高级程序设计》学习笔记(5)——面向对象编程

    欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第六章内容. 1.面向对象(Object ...

  3. Delphi 用文件流读取文本文件字符串的方法

    procedure TForm23.Button4Click(Sender: TObject); var pstr:Pchar; mestr,Str1:string; FS:TFilestream; ...

  4. .NET ORM工具Pax实战

    Pax是微软的一个ORM读写工具,比NHibernate更好用.可以在项目中用Nuget下载并安装. 可以看到引用中多了 在App.config里设置配置文件如下 <?xml version=& ...

  5. C# 禁止程序多个实例运行

    //program.cs    static class Program    {        /// <summary>        /// 应用程序的主入口点.        // ...

  6. * {margin:0px; padding:0px;}什么意思?

    * {margin:0px; padding:0px;} *  表示所有的元素的对齐方式以及和父类之间的间距都为0 body{margin:0px;padding:0px;} body里面的则表示的是 ...

  7. SpringMVC无法获取请求中的参数的问题的调查与解决(2)

    由于Request的getInputSteam()一旦获取一次后,就再也无法获取了 在实际项目中导致下面的问题: 1,多个拦截器,Filter都需要从InputStream中拿数据的情况无法处理: 2 ...

  8. 为了解决mysqlbing翻译表字段问题而分析frm文件(持续更新)

    出处:kelvin19840813 的博客 http://www.cnblogs.com/kelvin19840813/ 您的支持是对博主最大的鼓励,感谢您的认真阅读.本文版权归作者所有,欢迎转载,但 ...

  9. Using Redis to store php session

    Using Redis to store php session 默认情况下,php将会将session信息存储在文件系统上,在单机情况下没有问题,但是当系统负载增大,或者在对系统可用性要求很高的场景 ...

  10. DataSnap修改数据ApplyUpdates出现错误:连接繁忙导致另一个命令

    最近准备尝试用DBExpress做个SQL Serer应用,在学习的时候发现一个问题使用DBExpress连接Sql server 2008 express使用以下控件SQLConnection-&g ...