SOAP 适配器的已知问题

本部分包含可帮助你避免出现错误的信息。

已知问题

SOAP 适配器在负载下性能降低或生成错误

问题

SOAP 适配器在负载下性能降低或生成错误

原因

发生这一问题的原因是 SOAP 适配器的默认配置选项或影响 SOAP 适配器的依存关系组件的默认配置选项未针对负载下的性能进行优化。

解决方法

若要解决此问题,请修改 SOAP 适配器的配置选项或 主题影响适配器性能的配置参数中所述的依赖项组件的配置选项。

MIME/SMIME 编码器和解码器管道组件无法对 SOAP 适配器处理的数据进行编码和解码

问题

MIME/SMIME 编码器和解码器管道组件无法对 SOAP 适配器处理的数据进行编码和解码

原因

发生这一问题的原因是 SOAP 适配器在流程的适配器阶段组装和拆装 SOAP 消息。

解决方法

若要解决此问题,请使用安全套接字层 (SSL) 保障通信的安全,以便对 SOAP 适配器处理的信息进行编码。 在发送端,使用 SOAP 适配器属性页中的 客户端证书指纹 属性来实现此目的。 在接收端,必须为 SSL 安全通信配置 BizTalk Web Services 的宿主虚拟目录。

承载 SOAP 适配器的默认 AppDomain 被卸载,导致主机进程挂起

问题

承载 SOAP 适配器的进程挂起,导致进程中的所有其他 Web Services 挂起。 这可能导致以下错误:

执行响应 (发送) 管道失败:“未知” 源: “未知” 接收端口: TwoWayLatencyLoopBack_RxPort“ URI: ”/TwoWayLatencyRxSOAP/TwoWayLatencyWS.asmx“ 原因: 尝试访问卸载的 AppDomain。

原因

SOAP 适配器在 IIS 进程空间中运行。 如果 IIS AppPool 中存在一个以上的 Web Services,则每个 Web Services 最后会具有自己的 AppDomain。

默认情况下,所有消息引擎对象在第一个 AppDomain 中创建(即与第一个 Web Services 相对应的 AppDomain)。 如果第一个 Web Services 出于任何原因在很长的一段时间内是不活动的,IIS 将卸载第一个 AppDomain。 出现这样的情况时,承载进程中的所有服务都不能使用。

解决方法

若要防止卸载 AppDomain,请执行以下过程:

  1. 单击“开始”,指向“所有程序”,指向“Microsoft BizTalk Server然后单击”BizTalk Server管理”。

  2. 在“BizTalk Server管理控制台”中,依次展开“BizTalk Server管理”、“BizTalk 组”、“平台设置”,然后单击“主机”。

  3. 在“主机”列表中,右键单击所需的主机,然后单击“ 设置”。

  4. BizTalk 设置仪表板的“常规”选项卡下,检查独立适配器的默认应用程序域

    执行此操作后,BizTalk 消息引擎对象在默认的 AppDomain 中创建,而不是在自己的 AppDomain 中创建。 因为默认的 AppDomain 永不被卸载,就不会再出现这样的问题了。

SOAP 适配器无法注册

问题

BizTalk Server 尝试注册 SOAP(或 HTTP)适配器时,可能出现以下错误。

“The Messaging Engine failed to register an adapter SOAP”(消息引擎无法注册适配器 SOAP。) 详细信息:“不支持在同一进程中注册多个适配器类型。 “For e.g. HTTP and SOAP receive adapters cannot co-exist in the same process.”(例如,HTTP 和 SOAP 接收适配器不能在同一个进程中共存。)

“The Messaging Engine failed to register an adapter HTTP”(消息引擎无法注册适配器 HTTP。) 详细信息:“不支持在同一进程中注册多个适配器类型。 “For e.g. HTTP and SOAP receive adapters cannot co-exist in the same process.”(例如,HTTP 和 SOAP 接收适配器不能在同一个进程中共存。)

原因

在 Windows Server 2003 / IIS 6.x 上运行 BizTalk Server 时,SOAP 和 HTTP 适配器不能在同一个进程空间或应用程序池中执行。

解决方法

如果安装需要在一个 Web 服务器上同时使用 SOAP 和 HTTP 适配器,则必须为每个适配器创建单独的应用程序池。 创建后,每个适配器的虚拟目录被分别分配给不同的应用程序池。

注意

在 Windows XP 下不会出现此问题,因为在这些操作系统下,SOAP 和 HTTP 适配器运行在 IIS 5.x 下的不同进程空间中。 SOAP 适配器作为 ASP.Net 应用程序运行在 aspnet_wp.exe 进程中。 HTTP 适配器运行在 dllhost.exe 的专用进程空间中。 因此,这两个适配器是相互隔离的,可以同时在一个 Web 服务器上运行。

另请参阅

SOAP 适配器疑难解答