SDE操作的许可问题

简介:

直接来先看报错的代码:

这是很普通的连接Sql Server SDE的代码操作,

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/// <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许可

参考文章

http://gis.stackexchange.com/questions/2090/product-license-not-initialized-error-when-trying-to-open-an-sde-connection-in-a

http://resources.arcgis.com/en/help/arcobjects-net/componenthelp/index.html#/LicenseInitializer/004800000005000000/















本文转自我也是个傻瓜51CTO博客,原文链接:http://www.cnblogs.com/liweis/p/6666563.html ,如需转载请自行联系原作者


相关文章
|
9月前
|
Linux 数据安全/隐私保护
Linux权限 - 概念与管理 | 文件权限的修改与转让 【详解】
Linux权限 - 概念与管理 | 文件权限的修改与转让 【详解】
202 0
Linux权限 - 概念与管理 | 文件权限的修改与转让 【详解】
|
Linux
linux的基本权限和附加权限及归属
linux的基本权限和附加权限及归属
289 0
|
安全 文件存储 数据安全/隐私保护
从Windows以AD域用户身份挂载使用阿里云SMB协议文件系统
在完成AD域接入之后,用户即可开始以AD域用户身份挂载使用阿里云SMB协议文件系统了。本文介绍了几种SMB文件系统的挂在方式以及简单的ACL特性使用方法的演示。
5883 0
从Windows以AD域用户身份挂载使用阿里云SMB协议文件系统
|
Shell Linux Apache
Linux账号不能切换(This account is currently not available.)
比如我是 su apache的时候出现的问题 用vi看看 apache的帐号信息 cat /etc/passwd | grep apache 发现它的shell是“/sbin /nologin”,需要将起改成“/bin/bash” vipw /etc/...
1687 0

热门文章

最新文章