SuperMap 6R系列产品网络加密锁占用解析

来源:互联网 发布:php读取chm文件内容 编辑:程序博客网 时间:2024/06/01 10:41

作者:为梦齐舞

      前几天遇到某客户在使用SuperMap Objects.NET 6R时发现,一台机器上运行两个不同的程序,居然占用的2个网络许可的问题,就此问题小编展开了一系列的测试,现在对SuperMap 6R系列产品的网络加密锁做如下解析。

      一、在介绍之前我们先来看一下如何监测6R的许可占用。
1、使用浏览器在打开6002端口,锁插在本机,服务地址即为localhost。
这里写图片描述
2、点击Keys#列表中的数据可以看到哪些机器在占用网络许可。
这里写图片描述
3、点击Sublicense列表中的数据则可以看到哪些模块被占用并可以看到占用了多少个许可。
这里写图片描述
      二、网络锁许可占用介绍
介绍完许可占用情况的查看方法,那接下来我们看一下许可占用的几种情况。
1、有很多人会问,在工程中引用了DLL动态库,就会占用许可吗?答案是不会,只有用到DLL里面的相关功能接口,才会占用许可。
2、一般说一台机器上的相同用户,不论运行多少个程序(程序是可以是不同的程序),都只占用一个网络许可。
3、既然说明1中提到了一台机器上的相同用户,那么要是一台机器上存在多个用户,占用许可会是什么情况呢?经过测试,相同机器上的新建了两个不同名称的用户,运行相同的程序,网络许可占用数为2,由此说明,一台机器上的不同用户运行程序,将会进行多个许可占用,占用数以运行程序的用户为准。
4、还有一种比较特殊的情况,在一台计算机的相同用户下,运行了两个不同的程序,一个为WinForm程序,一个为WindowsService程序,会出现许可占用为2的情况,那这不是和结论2的结果冲突吗?
      到许可的占用里面看到一个占用名称为本机计算机名,一个占用为SYSTEM的用户,但是SYSTEM的用户我们并没有创建啊,那这个用户为什么会占用一个许可呢?
这里写图片描述
      带着这样的疑问,我们去网上搜索了一下答案,SYSTEM为系统用户,因为Service程序默认使用系统用户进行运行,所以会出现这样的情况。再看一下任务管理器中的Service程序,运行的用户名称就是SYSTEM
这里写图片描述
       那么问题到这就算找到原因了,原来这一种特殊情况也是由不同的用户运行程序引起的,那么如何解决这个问题呢?因为Service程序默认使用系统用户进行运行,所以必须改变他的运行用户就可以解决问题。在服务中右键属性,更改登陆账户为当前计算机账户即可。
这里写图片描述

0 0
原创粉丝点击