在任务列表中生成错误

在生成项目或解决方案时,其结果将显示在“输出”窗口中,而各个错误和警告将显示在任务列表中。

错误和警告将显示在任务列表中。 你可以双击错误,焦点将指向未正确配置的对象。

注意

在生成过程中,编译器将不会验证 XPath。 所以,请谨慎使用有效的 XPath 语法。

不完全的配置操作

显示表示配置操作不足的图标的图像。

注意

尽管业务流程设计器将在发生配置不完全时提供配置不完全警告,但这并不能确保没有此类警告业务流程的编译就是正确的。

编译器询问是否缺少程序集引用

问题

编译业务流程时,会收到一条错误消息,以问题“是否缺少程序集引用?”其中两个更常见的消息是:

  • 命名空间“Y”中不存在类型或命名空间名称“X”(是否缺少程序集引用?)

  • 标识符“X”在“Y”中不存在;是否缺少程序集引用?

原因

下面任何一项都可能是导致此错误的原因。

  • 你的项目不能引用一个或多个所需程序集。

  • 你的项目具有与项目同名的映射或其他对象类型。

  • 你的项目使用基于 XML 架构定义语言 (XSD) 的合作伙伴接口流程 (PIP) 架构并在名为“System”的子文件夹中包含 XSD 架构。

  • 你的项目使用命名空间为当前项目命名空间子集的全局属性。 例如,在项目“Accounts.FILE”包含的业务流程中使用全局属性命名空间“File.ReceivedFileName”。

解决方法

根据导致问题的原因,解决方法可为以下某一种:

  • 添加指向你的项目需要但缺少了的程序集的引用。

  • 将映射或其他对象的名称更改为项目名称以外的其他名称。 通常,这可通过对象的属性页完成(例如,“映射属性”页包含“名称”属性)。

  • 更改 Visual Studio 中架构的命名空间。 若要使用 Visual Studio 执行此操作,请单击“项目”菜单上的“显示所有文件”,然后在解决方案资源管理器展开“系统”节点。 单击 System 文件夹和任何子文件夹中的每个文件,然后更改属性窗口中的命名空间条目,使出现的任何 System 都变为 _System。 例如,将 MyProject.System.SubFolder 命名空间更改为 MyProject._System.Subfolder 命名空间。 有关此问题的详细信息,请参阅 知识库文章916649

  • 从项目中删除相冲突的全局属性命名空间。

在生成项目时,收到错误“construct 语句中未初始化消息”

问题

在编译 BizTalk 应用程序时,收到错误“construct 语句中未初始化消息”。

原因

在构造消息时,应指定所有消息变量。 然后,对消息或其部分进行分配。 如果特定消息分配的一部分包含在单独的 “构造消息” 形状中,则可能会收到初始化错误消息。

解决方法

若要解决此行为,请确保在同一构造消息形状中包含特定 消息 分配的所有部分。

表达式形状中使用消息的实例之前,还可以通过在构造形状中创建消息来解决此行为。 例如,如果放置在 表达式 形状中,以下代码会导致错误:

XMLDOM = new System.Xml.XmlDocument();
POAckMsg = XMLDOM;

若要修复,请在 构造 形状中创建 XMLDOM 的实例,然后在下游 表达式 形状中执行赋值。

在生成项目时,收到错误“使用未构造的消息”

问题

编译 BizTalk 项目时,会收到错误“使用未构造的消息'<message>'”。

原因

“发送” 形状中使用未构建的消息时,会发生此错误。

解决方法

若要解决此问题,请向业务流程添加 构造消息 形状。 在绑定到 Web 服务的“发送”形状之前包括“构造消息”形状。

设置作用域的事务级别将导致错误

问题

在业务流程中配置作用域或支持事务的其他实体的事务类型时,收到错误“非事务性业务流程不能包含任何其他事务”。

原因

当尝试在业务流程中将作用域(或其他实体)的事务类型配置为“原子”或“长期”,而业务流程本身的业务类型为“无”时,将出现此错误。

解决方法

确保业务流程和构成对象的事务类型设置相兼容。

项目生成导致错误“必须为非自相关端口上的非激活接收指定至少一个已初始化的相关集”

问题

在编译 BizTalk 项目时,收到错误“必须为非自相关端口上的非激活接收指定至少一个已初始化的相关集”。

原因

如果业务流程没有激活 接收 形状, (Activate = true) 或没有激活 接收 形状,并且其他业务流程未直接调用,则会发生此错误。

解决方法

如果业务流程未由另一个业务流程调用,则必须将其中一个 接收 形状配置为激活的接收。 有关配置 接收 形状(包括关联链接)的详细信息,请参阅 如何配置接收形状

生成解决方案时收到错误“程序集生成失败 - 引用的程序集'assembly>'<没有强名称”

问题

生成具有业务流程的解决方案时,收到错误“程序集生成失败 -- 引用的程序集'assembly>'<没有强名称”。

原因

当在业务流程中使用未签名的引用程序集中的类型时,将出现此问题。

解决方法

对引用的程序集应用强名称。 如果该程序集是可重新编译的自定义程序集,请使用强名称工具创建 .snk(密钥)文件,然后在项目的程序集属性中引用该密钥文件。 有关强命名程序集的详细信息,请参阅 如何配置强名称程序集密钥文件

在部署业务流程时,出现错误“无法添加资源。 对某些资源的更改请求失败”

问题

在部署业务流程时,出现类似下面的错误并且业务流程部署失败:

Failed to add resource(s). Change requests failed for some resources. BizTalkAssemblyResourceManager failed to complete end type change request. Object reference not set to an instance of an object.

原因

如果业务流程包含使用 C# 关键字的任何对象,则可能会出现此错误。

解决方法

删除业务流程中的任何 C# 关键字。 有关详细信息,请参阅 C# 关键字 (keyword) 列表

在编译业务流程时,收到错误“无效的属性值”

问题

在生成业务流程时,出现错误对话框“无效的属性值”。

原因

解决方案中的一个或多个对象与其他对象同名。 例如,消息名称与端口名称相同。

解决方法

确保解决方案中的每个对象具有唯一名称。 遵守命名约定可将发生此错误的风险降到最低。

另请参阅

如何生成业务流程