ArcEngine中License权限等级更改的问题

曾经认为自己对于ArcGIS 开发许可问题比较理解了,并小结在《ArcEngine10.x开发的许可问题》中。

01.权限问题

今天在调用GP时失败(插值式开发,使用的是他人框架),因为需要Advanced级别权限。有两点可以证明是权限不足:一是我在新建项目中测试成功,说明代码参数没问题;二是在问题框架调用clip(只需Basic级别)成功。更改变我的人生观念的是:同事们都说,既然权限不足,就在调用功能是再次初始化相应权限!在我的印象中,权限一旦初始化,就不可更改,除非结束程序。

02.还原真相

为了确认事实真相,我自己写了代码进行测试,在程序中更改权限是无效的。使用IAoInitialize接口进行初始化许可的原则:Initialize方法只能调用一次,多余无效,返回esriLicenseAlreadyInitialized ,LicenseControl勾选多个许可也是无效的。即在程序运行过程中,不能再次更改许可等级

在ESRI官网上也找到原文:"Once an application has been initialized with a license, it cannot be reinitialized; an application is initialized with a license for the duration of its life. For example, you can‘t write an application that starts up with an ArcView license and later switches to ArcEditor."

03.修改权限

在修改已有框架的权限时,虽然有源代码,但更改LicenseControl或使用AoInitialize无效,打开程序被强制关闭,并报错-42,原来是OcxState作怪,必须全部手动删除,要么只有删除控件,全部重新拖放并布局。

时间: 2024-11-04 23:41:07

ArcEngine中License权限等级更改的问题的相关文章

mysql数据库中的权限

用户在访问数据库的时候,有时候我们并不希望所有访客都能对数据库内的数据进行增删改查等处理,这时候就需要用到权限管理. 在mysql中,权限是系统内定的一些"名词"(单词),大约30个,每个权限表示"可以做什么工作". 则分配权限就是相当于让某个用户可以做哪些工作.mysql中的用户信息都存储在系统数据库mysql的user表中,我们可以查看用户表来查看不同用户所拥有的权限,并更改不同用户所拥有的权限.语法语句:创建用户:create  user  '用户名'@'允许

mediawiki中关于权限的问题

其实有个地方是我从来没有适应过得,那就是这样:以前在A,我是全权负责, 但是现在呢,我只是工作中的一环而已. 我只是mediawiki的管理员而已,我的工作成功与否是建立在别人的工作是否成功上的. 需求:customer想让一个组的人访问某个wiki的子页面. global的wiki是分为多个模块的,因此说:global的wiki是面向SONY整个公司的,面对不同的team的. 其中包括开发,Linux,Oracle,AD,dns分为多个模块. 所以说,不同的人有不同的访问页面. group在我

在ArcEngine中使用Geoprocessing工具-执行工具

转自原文在ArcEngine中使用Geoprocessing工具-执行工具 来解析一下Geoprocessor类的Execute方法,他有两种重载,Execute(IGPProcess, ITrackCancel)和Execute(string, IVariantArray, ITrackCancel). Execute(IGPProcess, ITrackCancel) IGProcess是所有Geoprocessor工具类都实现了的接口,通过ITrackCancel接口能够处理用户发出的取消

android权限--android开发中的权限及含义(上)

android权限--android开发中的权限及含义(上) android.permission.EXPAND_STATUS_BAR 允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序 android.permission.FACTORY_TEST 作为一个工厂测试程序,运行在root用户 android.permission.FLASHLIGHT 访问闪光灯,android开发网提示HTC Dream不包含闪光灯 android.pe

C#+ArcEngine中com对象的释放问题

1.问题描述 最近在写C#下AE的开发,在循环获取数据并修改时碰到了两个问题"超出系统资源"和"超出打开游标最大数":在网上看了一些资料,发现都是说在循环中没有释放已经使用过的对象,但是在循环中实际上是有为com对象赋值为null的,但是还是没法解决.后来想着将对象赋值为null和marshal是不是效果不一样,就特意写了一个简单的循环来测试,代码如下(初级代码,比较乱,请轻喷): 1 public void Test_释放游标方式() 2 { 3 string s

Android中那些权限

Permission Permission Permission Group Permission Tree Users Permission ACCESS_CHECKIN_PROPERTIES 允许读写访问"properties"表在checkin数据库中,改值可以修改上传( Allows read/write access to the "properties" table in the checkin database, to change values th

数据库中的grant权限赋予和系统中的权限管理是两码事。

数据库中的grant权限赋予和系统中的权限管理是两码事.grant一般是赋给个人的,对全部或单个数据库的增删改查等权限,不多说.权限管理系统 在数据库中建表,存角色,权限,不同的菜单,在java层面上写代码控制的.用filter或if等都能控制.参考资料:grant:http://www.cnblogs.com/Richardzhu/p/3318595.htmlhttp://blog.csdn.net/leshami/article/details/5688875http://7567567.b

<实训|第九天>掌握linux中普通的权限控制和三种特殊的权限(sst),做合格的运维工程师

linux中,权限的学习是必不可少的,不论是作为一名运维工程师或者是单一的管理者,学习好linux中的权限控制,你就可以保护好自己的隐私同时规划好你所管理的一切. 权限的学习是很多的,不要认为自己已经把自己的隐私保护的很好,漏洞总是有的,侧面的攻击往往是难以防守的.所以大家跟我一起学习一下基础的权限控制,在后面也会有更多关于权限控制的知识点分享出来.谢谢各位的关注和支持!  开班第九天: 今天的课程大纲: linux系统中文件目录的基本权限控制 如何来修改默认的生成权限 三种特殊的权限(s,s,

mysql用户及数据库的创建及权限的更改

创建数据库 create database discuz default character set utf8 collate utf8_general_ci; 创建用户 create user 'discuz'@'localhost' identified by 'discuz'; 更改用户访问数据库的权限 grant all on discuz.* to 'discuz'@'localhost'; 更改非本机使用数据库用户连接数据库的权限的更改 update mysql.user set h