SDE操作的许可问题
ArcGIS二次开发和ArcGIS桌面应用中,许可是一个老生常谈的问题。以前也小结过一些经验。参考:
http://www.cnblogs.com/liweis/p/4185311.html
问题描述
直接来先看报错的代码:
这是很普通的连接Sql Server SDE的代码操作,
/// <summary>
/// 获取工作空间
public static IWorkspace GetWorkspace(IPropertySet pPropertySet)
{
if (pPropertySet == null) {
return null;
} // 创建 SDE 工作空间工厂,并打开工作空间
//Type factoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.SdeWorkspaceFactory");
//var workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType);
IWorkspaceFactory workspaceFactory = new SdeWorkspaceFactoryClass();
IWorkspace workspace = workspaceFactory.Open(pPropertySet, 0);
return workspace;
} /// <summary>
/// 转换成属性设置
/// </summary>
public static IPropertySet GePropertySet()
{
IPropertySet pPropertySet = new PropertySetClass();
pPropertySet.SetProperty("SERVER", "服务器IP");
pPropertySet.SetProperty("INSTANCE", string.Format("sde:SQLServer:{0}", "服务器IP"));
pPropertySet.SetProperty("DATABASE", "数据库名称");
pPropertySet.SetProperty("USER", "sa");
pPropertySet.SetProperty("PASSWORD", "密码");
//pPropertySet.SetProperty("VERSION", "SDE.DEFAULT");
pPropertySet.SetProperty("AUTHENTICATION_MODE", "DBMS");
return pPropertySet;
}
经测试SDE连接参数正常,可在Open方法时,报错"The Product License has not been initialized"(产品许可未初始化),程序是用代码初始化许可的,运行绑定Desktop,产品许可类别是Advanced(高级版)
解决问题
在相同的环境下,另外一套程序又可以,比较两者的不同,似乎与MapControl控件存在某种关联,经反复测试,得出以下结果:使用AO的sample作对比,只要是先拖放MapControl控件,代码就不会报许可问题(先拖放许可、或不拖MapControl都不行)。
暂时是解决了这个问题,我们姑且认为是10.4的bug,虽然没有使用MapControl,但也拖放了这个控件(隐藏)。
我一直在想,既然它都能报这个错,肯定不是什么bug,而不是我们不知道错在哪里,经过一番测试,最终于不是通过许可方式解决它了。即在代码初始化许可是除了添加Advanced许可,还添加了ArcServer许可。

参考文章
SDE操作的许可问题的更多相关文章
- Arcgis更新sde库许可
概述 一般来说SDE的试用许可我会建议用户在没有到期之前进行续期,也就是更新许可.否则的话,如果SDE试用许可到期了,除了PostgresSQL数据库之外,我们只能通过SQL语句的方式来进行更新.在到 ...
- SQL Server安全(4/11):许可(Permissions)
在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Se ...
- Android开发指南-框架主题-安全和许可
概述:Android操作系统是一个安全便捷的Linux系统,遵循Linux系统机制,允许多进程.为了进程间的数据共享和交互共用,设计"权限"这个名词,声明权限代表可使用此权限,未声 ...
- java操作oracle空间信息介绍
转自:http://www.cdtarena.com/javapx/201307/9088.html sde是Spatial Database Engine简写,中文全称:空间数据库引擎. SDE是一 ...
- centos安装后第一次重启,许可协议、Kdump
1.许可协议,服务器键盘操作找到许可 确定(遇到过,第一次懵逼了) 2.Kdump是RHEL提供的一个崩溃转储功能,用于在系统发生故障时提供分析数据,它会占用系统内存,一般选择关闭(默认是关闭)(这个 ...
- linux日常---3、linux常用操作
linux日常---3.linux常用操作 一.总结 一句话总结: 状态的确是非常之好,享受这种状态. 1.linux删除文件夹和文件? rm -rf *:删文件和文件夹 rm -rf *.*:只能删 ...
- SQL Server安全(6/11):执行上下文与代码签名(Execution Context and Code Signing)
在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Se ...
- SQL Server安全(3/11):主体和安全对象(Principals and Securables)
在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Se ...
- Android 6.0 运行时权限处理
在运行时请求权限 从Android 6.0(API级别23)开始,用户权限授予应用程序在应用程序运行时,当他们安装程序.这种方法简化了应用程序的安装过程,因为用户不需要安装或更新应用程序时授予权限.这 ...
随机推荐
- [Node.js]连接mongodb
摘要 前面介绍了node.js操作mysql以及redis的内容,这里继续学习操作mongodb的内容. 安装驱动 安装命令 cnpm install mongodb 安装成功 数据库操作 因为mon ...
- jQuery Pagination分页插件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- ArrayList的总结
1.ArrayList的特点 主要特点:按照插入顺序来保存元素,可以利用下标来查找值 2.ArrayList的优点: 按照下标访问元素最快 3.ArrayList的缺点: 在中间插入元素很慢 删除元素 ...
- Java ArrayList、string、string[]之间的转换
1.ArrarList 转换为 string[] : ArrayList list = new ArrayList(); list.Add("aaa"); list.Add(&qu ...
- ios之gcd浅析
A.普通的GCD异步运行与主线程更新写法: dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, ), ^ ...
- Java命令学习系列(六)——jinfo
jinfo可以输出java进程.core文件或远程debug服务器的配置信息.这些配置信息包括JAVA系统参数及命令行参数,如果进程运行在64位虚拟机上,需要指明-J-d64参数,如:jinfo -J ...
- libstdc++.so.6: version `GLIBCXX_3.4.21' not found
问题: dotnet: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by dotnet)dotnet ...
- OHEM
样本不平衡问题 如在二分类中正负样本比例存在较大差距,导致模型的预测偏向某一类别.如果正样本占据1%,而负样本占据99%,那么模型只需要对所有样本输出预测为负样本,那么模型轻松可以达到99%的正确率. ...
- Python 模块 re (Regular Expression)
使用 Python 模块 re 实现解析小工具 概要 在开发过程中发现,Python 模块 re(Regular Expression)是一个很有价值并且非常强大的文本解析工具,因而想要分享一下此 ...
- Ubuntu下搭建Hyperledger Fabric v1.0环境
多次尝试才正常启动了Fabric,如遇到各种莫名错误,请参考如下一步步严格安装,特别用户权限需要注意. 一.安装Ubuntu16 虚拟机或双系统,虚拟机有VirtualBox或者VMware,Ub ...