Biztalk Web服务端口以及端口/应用程序停止时会发生什么

时间:2010-12-21 07:27:38

标签: web-services iis-6 biztalk

我对biztalk有疑问,当满足Web服务端口的某些条件时会发生什么。

基本上我们有两个应用程序 - 一个主应用程序(我们称之为'MainApplication')(包含业务流程)和一个Web服务应用程序(我们称之为'MainApplicationWS'),我们公开一个Web服务(从biztalks web创建)服务工具)从任何地方接收消息。

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

我注意到,如果我们部分停止MainApplicationWS应用程序,并将消息发送到列为接收位置的Web服务,则没有任何事情发生(显然!)(同样,Web服务仍在运行,即使它已被删除作为接收地点)。但是,如果我再次启动MainApplicationWS并弹回主机实例,则会从某个地方获取消息并将其播放到业务流程并进入我们的应用程序。

我对MainApplicationWS部分停止时存储这些消息的位置感到有些疑惑。 Web服务是以某种方式挂在这些上面的吗?或者它仍然发布到biztalk消息框?

任何澄清将不胜感激:)

欢呼声, 亚当

1 个答案:

答案 0 :(得分:1)

简而言之,我无法在Biztalk 2009中重复您的行为。最接近“排队”消息的方法是,如果业务流程已停止但仍处于入伍状态,以便消息可以暂停恢复。

很长一段时间 - 我不太确定你所说的“作为接收地点被除名”是什么意思。在Biztalk 2009:

  • 可以启用或禁用接收位置
  • 业务流程可以停止,并且未列入清单
  • BTS应用程序上的部分停止会禁用接收端口并停止编排(但不会取消列出)
  • 完整停止和不受欢迎的编排

以下是BizTalk 2009上针对具有WCF请求/响应端口的简单业务流程观察到的行为,该端口接收消息,将发送映射回同一端口 端口是Direct Bound(MessageBox)。

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

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

如果BizTalk接收位置已停用

  • WSDL:Syncrhonous错误返回给客户端 - Messaging Engine无法为接收位置“xyz.svc”注册“WCF-BasicHttp”的适配器。请验证接收位置是否存在,以及隔离的适配器是否在可以访问BizTalk数据库的帐户下运行
  • 服务呼叫:无法激活所请求的服务xyz.svc。有关详细信息,请参阅服务器的诊断跟踪日志。

如果业务流程已停止,但未取消列表

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

如果业务流程未列入

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

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

希望这有帮助吗?