Page tree
Skip to end of metadata
Go to start of metadata

这个页面列出了CAST AIP 8.3.5中所有已知的问题。列表上有36个问题。注意列“内部ID”仅用作内部引用ID。

技术组件/s情境症状方案受影响的版本/s内部 ID


通过使用首选媒体类型导出Rest API导出违规列表:text/csv

内部服务器错误——响应状态500


8.3.5SCRAIP-32892


使用服务器管理器把CAST模式8.2.x升级到8.3.x,并且C-Family插件安装在8.2.x中。

8.3.x插件文件夹中没有C-Family插件

(注意:因此C-Family插件在升级期间将从CAST模式中删除。)

当打开CAST 管理器 (CAST- MS)并验证评估模型时,您将在评估模型验证视图中看到警告:


名称缺失


相关值缺失


相关值编号缺失


计算配置缺失


弃用缺失


XXL质量规则缺失 

注意:这些警告对快照结果没有影响,可以安全的忽略。


作为一种解决方案,您可以在升级模式之前从评估模型中删除所有C-Family质量规则。


这些是ID在1050000到1050050之间的质量规则。

# |规则ID |规则名称
1 1050000 避免在循环中使用带有iOS/Objective-C API的web服务调用

2 1050002 避免代表NSURL实例使用NSString stringWithFormat

3 1050004 避免使用NSPredicate predicateWithFormat

4 1050006 避免使用NSException raise:format: and raise:format:arguments: 

5 1050008 避免使用NSMutableString appendFormat:代表NSURL实例

6 1050010 避免使用 NSURLRequest setAllowsAnyHTTPSCertificate:forHost 
7 1050012 Objective-C接口覆盖isEqual:方法不覆盖hash方法 

8 1050014 UIApplication委托applicationDidEnterBackground:必须删除敏感数据

9 1050016 不要使用strcat()函数
10 1050018 不要使用strcpy()函数
11 1050020 避免返回语句@finally块
12 1050022 避免使用不推荐的SSL协议 
13 1050024 在密钥链中存储数据时,避免使用kSecAttrAccessibleAlways属性

14 1050026 避免使用非线程安全的Objective-C单例模式
15 1050028 始终使用LAContext canEvaluatePolicy:在使用evaluatePolicy之前:
16 1050030 确保Objective-C错误条件检查不脆弱
17 1050032 确保检查了LAContext evaluatePolicy: reply块是否成功  
18 1050034 确保LAContext evaluatePolicy:reply块不是空的

19 1050036 确保iOS项目已启用ARC
20 1050038 避免对NSURLRequest使用NSURLRequestUseProtocolCachePolicy
21 1050040 避免使用SecTransform API
22 1050042 避免将凭证与iCloud同步
23 1050044 避免弱加密,提供足够的密钥大小
24 1050046 避免弱加密算法
25 1050048 避免创建没有保护的文件
26 1050050 Avoid using cryptography hash without salt


8.3.5SCRAIP-33022


使用插件下载器安装Flex 技术插件(com.castsoftware.flex),1.0.2、1.0.3或1.0.4版本。

安装失败,出现以下错误:

指定的路径、文件名或两者都太长。完全限定文件名必须小于260个字符,目录名必须小于248个字符。

将默认临时文件夹(由Windows环境变量%TMP%定义)设置为10个字符的路径,并从命令行启动插件下载器。例如:

set TMP=c:\temp 
ExtensionDownloader.exe install com.castsoftware.flex --version 1.0.2

8.3.5SCRAIP-33040

交付管理工具

使用服务器管理器将CAST模式8.2.x升级到8.3.x,该模式包含一个业务对象(BO)应用。

使用服务器管理器升级后,无法打开交付管理器工具(DMT)。您将得到以下错误消息:

Invalid ////S:/DMTDelivery834/Data/{..}/{...}/0cb4f6ea-b809-4c54-89d4-0ead2f452ad5.entity.xml


8.3.4SCRAIP-32782


使用CAST 服务管理器升级使用评估模型选项“default AM”。

查看%TEMP%\CAST\CAST\8.3\Servman中的日志。

日志文件包含这个警告消息:“WRN: :- Cannot find: CAST 8.3.3 Assessment Model


8.3.3SCRAIP-31507


分析由2种(或更多)技术组成的应用。例如C++和PHP不同技术的源代码共享一个公共的父级文件夹。例如:

——C:\Sources\CPP

——C:\Sources\PHP 

注意:对于源代码路径中的每个文件夹,AIP创建一个“Directory”对象。目录对象具有特定的类型,如“C++目录”或“UA目录”(PHP使用通用分析器UA进行分析)。

下列质量规则可以报告比预期更少的违规行为:

  -- .NET:一致的文件名和目录结构 (DIAG_SCOPE_ASPBEST008)
  -- .NET:索引页和global.asa在根目录中的位置 (DIAG_SCOPE_ASPBEST009)
  -- C++: 使用结构进行对象计数 (DIAG_CPP_ANA_USING_STR_TOTAL)
Enlighten和CAST 工程仪表盘 (CED)中的开发视图中:

只为父级文件夹创建一个目录对象。父级文件夹的目录对象类型取决于技术的分析顺序。目录对象采用应用分中析的第一个技术的类型。

在父级文件夹中有多少种技术,就有多少种目录对象,每种目录对象都具有各自技术的类型。

在“情境”中给出的例子中,创建了3个目录对象:

  -- "C++ Directory" 用于 "Sources" 文件夹(如果在PHP之前分析C++,则为“UA Directory” ) 
  -- "C++ Directory" 用于 "CPP" 文件夹
  -- "UA Directory" 用于 "PHP" 文件夹
预期为: 
  -- "C++ Directory" 用于 "Sources" 文件夹
  -- "UA Directory" 用于 "Sources" 文件夹 
  -- "C++ Directory" 用于 "CPP" 文件夹 
  -- "UA Directory" 用于 "PHP" 文件夹


8.2.5SCRAIP-28587


在分析包含带索引表的T-SQL代码的应用时。

与表索引相关的所有质量规则结果都是不完整的(一些违规行为是缺失的),与表索引相关的度量(例如,where子句中没有使用索引的行号)低于它们的实际值。


8.2.3SCRAIP-24977

应用工程仪表盘 (AED)

分析JEE应用

模块在应用的几个分析单元之间共享

共享模块违规,

质量规则“避免包之间的循环调用和继承”显示的信息不一致。例如:

*等级显示为演化,同时没有添加违规

*违规对象的数量与检查失败的数量不一致

违规行为没有统计一致,导致上面列出的问题。

无。8.2.0SCRAIP-21928


在.ABAP, PowerBuilder, C++, C#, VB.NET 或 JEE质量分析期间。

没有任何成员变量(函数容器)的类违反了“避免使用高度缺乏聚合的类”规则

无。
对于这种类,标准的“聚合”度量被定义为1,这在面向对象的环境中并不推荐。这将把它们标记为违规,即使在某些环境中这可以被看作是一种有效的编程模式。
8.2.0SCRAIP-22438


当您多次加载CED页面“调查-应用下拉”而没有显示结果时

根据应用大小,显示结果可能需要时间,随后如果尝试重新加载页面,它将复制一个仪表盘作业,该作业将在数据库中插入数据。因此您将在“违反规则的数量”、“违反规则的对象的数量”、“违反规则的数量”页面中复制信息。

在页面显示结果之前不要重新加载页面。8.2.0SCRAIP-21320


任何模块配置不使用“完整内容模块”选项的分析。

在快照过程结束时,CMS中提供的执行报告指出了一个额外的模块,与产品中其它地方配置和显示的模块相比(CMS中的Modules选项卡,仪表盘)。

无。这是一个纯粹的显示bug,对结果没有任何影响。8.1.0SCRAIP-18678


在从8.0.0版本升级之后运行应用的第一个分析。

CMS验证视图显示类似于“[Object ID]:代码xxx不对应于活动类型”的错误。

这是因为在最近的版本中,链接到旧版VB.NET分析器(7.3及以前)的一些对象类型没有精确匹配的类型。它们保留在配置中,但是被认为是无效的。

这种情况在使用C#或VB.NET的应用中最常见,但这些类型在任何应用中都可以(错误的)使用。

错误中指出的对象(模块定义、AU定义)必须在CMS中进行编辑,删除旧版类型,并让它们尽可能使用新的类型。

8.0.0SCRAIP-13699

事务配置中心 (TCC)

使用.NET技术,您可以直接在两个项目之间,或者在一个项目和由另一个项目生成的程序集之间创建依赖关系链接。在第二种情况下,如果您有相同DLL的多个复本(可能具有不同的版本),则应该始终在所有项目中引用相同的文件。如果选择了文件的多个版本(即使是相同的版本,但是在不同的路径中),它们也将彼此冲突。

一些对象和链接可能会从分析结果中丢失(因此事务可能也会丢失,功能点计数可能不正确),即使在调试模式下查看日志,也没有关于未解析调用的消息。

如果您处于这种情况,您可以在使用交付管理器工具打包应用之前更改项目文件,以手动确保只引用一个文件。您可以在Visual Studio中执行此操作,也可以在.csproj文件中手动执行。

或者,如果在交付中引用由另一个项目构建的程序集,还可以用一个项目引用替换对它的所有程序集引用,这将带来更多的好处。

8.0.0SCRAIP-14745

CMS快照/分析-生成模块

重新分析应用,其中执行分割已被更改。也就是说,已经更新了执行单元中的分析单元分组,以便处理内存问题,或者出于其它原因。

在仪表板中,一些模块显示为空,或者一些对象被标记为已删除,即使它们存在于代码中。在CAST 管理器中检查模块内容时,仍然会出现对象。

解决方案:

问题没有容易的解决方案。用于计算分析最终结果的数据已被执行单元重组破坏。请与CAST 支持联系,他们将帮助您解决这个问题。


7.3.7SCRAIP-18323

CMS 分析单元- 设置

使用第三方javascript库分析.NET web应用,其选项'Exclude stadard JavaScript libraries'设置为'yes'

分析引发了对第三方javascript库(如jquery)的一些违规行为。


7.3.6SCRAIP-15989

CAST 仪表盘

从CAST AIP 7.0x升级到CAST AIP 7.3.x时,以及查看CAST 工程仪表盘中列出当前和以前快照的日期。

如果在CAST迁移过程结束时,生成的快照被删除并重新生成,则会显示关于日期的差异。在这种情况下,当前快照日期正确显示,但是之前的快照日期不正确,并且引用的是较早的快照。


7.3.4SCRAIP-7119


当版本中没有squirrel包时,diag上的违规“避免在名为pre-record的触发器中使用SQL代码”就会消失。

缺少diag上的违规“避免在名为pre-record的触发器中使用SQL代码”。


7.3.0SCRAIP-3057

CAST 升级工具(CUT)

使用CAST 升级工具(CUT)从7.2迁移到7.3。

在多个管理库(MB)之间共享一个交付文件夹。

并有所有MBs的交付文件夹勾选为升级。

CUT错误的显示“确认”对话框。对话框如下:

“您必须选择在交付文件夹中管理应用的所有MBs。请参阅文档。

<delivery folder>文件夹缺失数据库:

<empty list> 

并且<n> MBs未列在连接配置文件中。

您想继续吗?

<OK> / <Cancel>

注意:如果所有的MBs都被勾选,消息就会显示不正确,可以安全的忽略,您可以通过单击“OK”继续。迁移将会成功。

但是如果有未勾选的MBs,则不能继续,前提要确保首先选择了所有MBs。

7.3.0SCRAIP-2666

CAST 管理器 (CMS)

将csproj复制到包含大量.NET源代码的文件夹中。

在DMT中,创建包含重复项目的包。

用一种方法分析重复的项目。

分析器合并阶段出现性能问题。删除重复的源以恢复性能。7.3.0SCRAIP-2902

CMS快照/分析-计算快照

CAST 管理器中有两个应用(A和B),应用A中的对象有到应用B中对象的链接。要识别和保存这些链接,需要在两个应用之间创建一个自定义依赖项。

当定义依赖项后第一次运行“每个应用的快照”选项时,不会标识两个应用之间的链接。

重新运行“每个应用的快照”选项,以获得两个应用之间的链接。

7.3.0SCRAIP-1539


在Windows 8或10上使用Cast 管理器或交付管理工具,具有高分辨率显示。

许多文本字段没有正确显示,文本太大且部分可见。

将显示比例因子更改回100%。CMS/DMT不能正确处理Windows高DPI屏幕引起的UI缩放比例。

在Windows 10中,右键单击桌面背景,选择“显示设置”。

在该窗口中,将“更改文本大小(…)”滑块移动到100%,即使它不是推荐值。

7.3.0SCRAIP-21477


使用CAST AIC门户时。

当您在CAST AIC门户中重命名应用,在随后使用交付管理器工具(应用名称尚未更新)时,不会反映名称更改。


7.2.3SCRAIP-14968

CMS 快照/分析

当在一台机器上的CAST管理器中生成快照,同时将CAST存储服务安装在另一台机器上,并且每台机器显示不同的时间(或配置为不同的时区)时。

快照的捕获日期/时间在CAST 管理器和CAST存储服务之间不一致。


7.2.0SCRAIP-949

CAST 仪表盘

发生在CAST工程仪表盘,调查——选择分布时的质量模型下拉视图。

根据业务标准,如果某些对象存在且没有任何违规,则分布选择的对象列表将不相同。

如果通过健康因子指标选择分布,则按PRI为对象列表进行排序,因此只列出违规的对象

如果通过TQI或规则遵从性指示器选择分布,则按名称为对象列表进行排序,并包含所有对象,甚至包括没有违规的对象

没有任何地方的级别是相同的。


7.2.0SCRAIP-13652

CAST 管理器 (CMS)

更新了一些文档之后,仪表盘服务上同步评估模型。

当度量ID <x>中的“无效语言符号'English'”出现时,同步将失败。

删除外部ID<x> 指示器的默认'English'文本的'English' 翻译。

7.1.0SCRAIP-13532


当使用CAST 管理器并编辑一个分析单元时,该单元使您能够包含或排除源文件/文件夹(例如C/C++)。

如果您添加一个排除/包含,然后单击Cancel按钮,一个空白条目将添加到排除和包含列表中。


7.1.0SCRAIP-14969


更改CAST 管理器中部署文件夹的路径时。对话框中显示的帮助说明被截断。
7.1.0SCRAIP-14970


使用CAST 交付管理工具创建补救项时。

取消补救创建窗口后,无论如何都会添加补救。


7.1.0SCRAIP-14971


- 使用Castms命令行运行对应用的分析 : 
      CAST-MS-cli.exe RunAnalysis -connectionProfile myConnectString -deliveryUnit myDU -system mySystem -appli myApplication 
- 并且在交付单元中没有应用“myApplication”。

分析所有应用,而不是只分析命令行(myApplication)中定义的应用。

确保在命令行中定义的应用存在于交付单元组合中。7.0.9SCRAIP-14981

CAST 仪表盘

在调查视图中选择业务标准以及使用IE7或8时。

选择业务标准有时会导致选择和更新不同的业务标准。

使用列标题对业务条件列进行排序。7.0.7SCRAIP-13777


如果其它SQL对象没有在分析服务中缺失,则初始分析/快照之后将会添加新用户定义的表类型。

您可从包含用户定义表类型中的数据库获取快照。

然后添加一个新用户定义的表类型并执行第二个快照。检查CAST Enlighten,查看用户定义的表类型是否存在。对象缺失。

然后添加一个调用此用户定义表类型的新程序,并执行第三个快照。当您使用Enlighten进行检查时,该对象现在已经存在。

如果用户定义的表类型在第一次分析/快照之前存在于应用中,则会保存;反之,只有当它被另一个SQL对象引用时,它才保存在您的分析服务中(例如:通过存储过程)。


7.0.7SCRAIP-14768



Metrics Assistant向导不允许使用“对象类型”中定义的函数和程序。


6.4.1SCRAIP-14984



当不同的语言(java、js、html……)出现在一行代码中时,计算出的“代码行数”是错误的。


6.4.1SCRAIP-14998


一个数据库中有一个对象(例如数据库A中的一个程序)访问另一个数据库中的对象(例如数据库B中的一个表),并且满足下列条件:

-这两个数据库之前都进行了分析,因此已经存在于KB中。

-这两个数据库由不同的工作来分析。

-在分析数据库A的工作中,“数据库自动注册”选项是关闭的。

当两个数据库都存在于KB中并分别进行分析时,不同数据库中的对象之间缺少链接。

在作业日志中包含以下信息消息。这项工作圆满完成。

信息:跳过参考过程'my_proc' ->表'my_db..my_table '因为' my_db . .my_table'位于未注册的外部数据库中。

Enlighten中,my_proc和my_db. my_table之间没有链接。

在分析数据库A的作业中,可以将选项“自动注册数据库”设置为ON,也可以在一个作业中分析两个数据库。

6.4.1SCRAIP-14769


- 分析JSP或ASP应用。
- 在JSP或ASP文件中,使用最后一个脚本标记指定了与前一个标记不同的脚本语言。

-所有在文件中使用的脚本标签都被认为是与文件中最后一个脚本标签相同的语言。

-当同一个文件中使用不同的脚本语言分析脚本时,这可能会导致语法错误。

修改文件中的最后一个脚本标记:Text replacement:在文件中使用的最后一个标记的末尾,脚本语言与用于此标记的脚本语言不同

示例:
- 以前的标签都在JavaScript页面中,
- 最后的标签都在vbScript页面中,
- Text Replacement : <tag in vbScript><script text="text/javascript"></script> 
 

6.4.1SCRAIP-14707



在JavaScript文件中以'%nnn' 形式指定的字符会导致语法错误。例如,JavaScript文件中下列行在分析过程中产生语法错误:

MM_openBrWindow 
('http://static.com/images/offerterms.html&#39;, 
%20'thepopup','width=450,height=500,scrollbars=yes,menubar=yes');
请注意空格字符使用的'%20' 符号。


6.4.1SCRAIP-15001
  • No labels