常见错误
本主题列出来在使用 BizTalk 映射器创建映射时可能遇到的常见错误消息。
使用映射中的“数据库 值提取程序” functoid 提取日期字段时,文档可能无法验证出站文档定义。 BizTalk Server可能会记录类似于事件日志中的验证错误:
事件源:BizTalk Server
事件类别:文档处理
事件 ID:324
说明:
BizTalk Server中出错。
详细信息:
------------------------------
XML 文档验证失败,原因如下:将“10/12/1995”分析为日期数据类型时出错。
挂起的队列 ID:“{A1127909-CA36-4359-B672-7CBA8B60BDAF}”
从数据源返回的日期格式 (,) 不是 ISO 8601 格式,这是 XML 所需的格式。
若要解决此问题,请执行以下操作之一:
编辑出站文档定义以使用字符串数据类型而不是日期数据类型。
创建自定义 MicrosoftVisual 基本 脚本 functoid,它将数据库 值提取程序 functoid 的输出转换为 ISO 8601 格式。
编译由大型架构、映射或业务流程组成的单个 BizTalk 项目时,编译器可能会生成类似于以下内容的错误:
内部编译器错误 (0xc0000005 地址 53624FD6) :可能罪魁祸首是“CODEGEN”。
Visual Studio 编译器对单个项目中所有字符串的总大小有 16 兆字节的限制。 编译 BizTalk 项目时,编译器会序列化用于创建程序集的架构、映射和业务流程,这会增加所有字符串的总大小,这可能会超出限制。
若要解决此问题,可以将架构或映射分离到不同的 BizTalk 项目中。
在 BizTalk 项目中,创建文件名为 System.btm 或 Microsoft.btm 的映射。 生成项目时,BizTalk 映射器会生成类似于以下任何一项的错误:
“类型名称‘SerializableAttribute’不存在…”
“类型名称‘NonSerializableAttribute’不存在…”
“类型名称‘SerializableAttributeAttribute’不存在…”
“类型名称‘XLANs’不存在…”
“属性”网格中的“类型名称”不应有任何保留的 .NET 命名空间,例如 System、Microsoft 等。
若要解决此问题,可以遵循以下任一解决方法:
将映射名称修改为非 .NET 保留字的任何字符串。 默认情况下,BizTalk 项目系统根据相应项目的名称创建 类型名称 。
例如:创建名为 Map1.btm 的新映射会将 Type Name 属性值设置为 Map1。 但是,重命名现有 BizTalk 项目不会更改 类型名称。
确保 BizTalk 项目中的所有项目的文件名不是 .NET 保留命名空间。
生成 BizTalk 项目时,BizTalk 映射器会生成一条类似以下任一内容的错误:
“文件 <文件名> 具有命名空间和类型名称属性的重复值。”
“命名空间 <名称> 已包含'_'的定义。”
在 BizTalk 项目中,检查是否存在以下情况:
多个项目具有相同的文件名。 例如, Map1.xsd 和Map1.btm。
文件名仅包含特殊字符 (~、 !、 @等 ) 。
若要解决此问题,可以遵循以下任一解决方法:
重命名文件。 确保 BizTalk 项目中所有项目的文件名都是唯一的。
确保 BizTalk 项目中所有项目的类型名称都是唯一的。
构建任何具有 BizTalk 映射器活动的 C# 工作流项目始终会显示以下有关 EnvDTE.dll 的版本冲突的警告。
没有办法解决“EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”和“EnvDTE, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”之间的冲突。 任意选择“EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”。 考虑 app.config 重新映射程序集“EnvDTE, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” 从版本 “7.0.3300.0” [] 到版本 “8.0.0.0” [C:\Program Files (x86) \Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\EnvDTE.dll] 以解决冲突并消除警告。 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets (1360,9) :警告MSB3247:发现同一依赖程序集的不同版本之间存在冲突。
WorkflowConsoleApplication3 -> C:\Users\btslabs\Desktop\WorkflowConsoleApplication3\bin\Debug\WorkflowConsoleApplication3.exe
之所以会发生这种情况是因为映射器活动所引用的 Microsoft.BizTalk.Mapper.OM.dll。
忽略此警告。