【问题标题】:Biztalk web service ports and what happens when the port/application is stoppedBiztalk Web 服务端口以及端口/应用程序停止时会发生什么
【发布时间】:2011-05-28 16:18:10
【问题描述】:

我有一个关于 biztalk 的问题,以及当满足 Web 服务端口的某些条件时会发生什么。

基本上我们有两个应用程序 - 一个主应用程序(我们称之为“MainApplication”)(包含编排)和一个 Web 服务应用程序(我们称之为“MainApplicationWS”),我们在其中公开一个 Web 服务(从 biztalks web 创建服务工具)从任何地方获取消息。

我们有一个测试工具,可以将消息重播到 MainApplicationWS 以模拟来自各种外部系统的消息。

我注意到,如果我们部分停止 MainApplicationWS 应用程序,并将消息发送到列为接收位置的 Web 服务,则什么也不会发生(显然!)(此外,Web 服务仍在运行,即使它已被除名作为接收位置)。但是,如果我再次启动 MainApplicationWS 并反弹主机实例,则消息将从某处拾取并播放到编排和我们的应用程序。

我只是有点困惑,当 MainApplicationWS 部分停止时它将这些消息存储在哪里。 Web 服务是否以某种方式依赖于这些?还是它仍然通过 biztalk 消息框发布?

任何澄清将不胜感激:)

干杯, 亚当

【问题讨论】:

  • 您使用的是 wcf 还是 soap 适配器?
  • 我也无法重现这个,我在BTS 2006上试过。当你说应用程序部分停止时,你是什么意思?什么开始,什么停止?

标签: web-services iis-6 biztalk


【解决方案1】:

简而言之,我不能重复您在 Biztalk 2009 中的行为。最接近“排队”消息的是,如果编排已停止但仍处于登记状态,这样消息就会暂停恢复。

长话短说 - 我不太清楚您所说的“作为接收位置被除名”是什么意思。在 Biztalk 2009 中:

  • 可以启用或禁用接收位置
  • 可以停止编排,也可以取消入伍
  • 您的 BTS 应用程序上的部分停止会禁用接收端口并停止编排(但不会取消注册)
  • 句号停止并取消编排

以下是在 BizTalk 2009 上观察到的行为,用于使用 WCF 请求/响应端口进行简单编排,该端口接收消息,将发送映射回同一端口 端口是直接绑定 (MessageBox)。

如果隔离主机应用程序池在 IIS 中被禁用

向客户端返回同步错误 - 标准 IIS 错误(503 服务不可用等) BizTalk 根本没有收到任何消息

如果 BizTalk 接收位置被禁用

  • WSDL:向客户端返回同步错误 - 消息引擎未能为接收位置“xyz.svc”的“WCF-BasicHttp”注册适配器。请验证接收位置是否存在,以及隔离适配器是否在有权访问 BizTalk 数据库的帐户下运行
  • 服务调用:请求的服务 xyz.svc 无法激活。有关详细信息,请参阅服务器的诊断跟踪日志。

如果编排已停止,但未取消登记

收到的消息已暂停,可恢复。客户端超时(未发出响应)。 如果 orch 启动并且消息恢复,则消息将被处理。只有在客户端配置的 WS/WCF 超时之前完成了 orch 启动和暂停消息恢复,客户端才会获得成功的回复。

如果编排未被征用

收到的消息被暂停,不可恢复。 客户端收到错误 - 由于内部错误,服务器无法处理请求。

使用 WCF CustomBinding 还可以直接在相关的 BizTalk ReceiveHost 上侦听(即根本不需要 IIS 来侦听 BasicHTTP 或 WSHTTP,尽管我们通常仍然使用向导在 IIS 中生成的 svc 仅用于托管和WSDL 的发布。然后我们直接在 BizTalk 中创建一个新的 WCF 自定义接收位置并将客户端指向此位置)

希望这有帮助吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 2015-03-30
    • 2013-11-29
    • 2011-09-25
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    相关资源
    最近更新 更多