BizTalk不会调用WCF服务

时间:2015-09-21 11:54:43

标签: c# wcf biztalk

我创建了一个本地WCF服务,它有一个方法InsertOrUpdate(String),它连接到数据库并插入/更新数据。如果我使用here(8)中的教程代码运行此服务并使用VS 2013中的WCF测试客户端进行测试,那么这一切都很有效。

现在我想通过BizTalk Server应用程序调用此方法,因此我已从服务中保存了WSDL文件,并通过使用WCF服务向导将其导入到我的BizTalk项目中。然后我创建了一个小型编排,如下所示:

enter image description here

in端口指向我硬盘上的目录,并查找各种xml文件。 out端口设置为到http://localhost:43250/Services/MyService.svc的HTTP传输。我已经在本地计算机上签署并部署了BizTalk应用程序,如果我将xml文件放在端口目录中,它会在短时间后消失,但我的服务未被调用。在BizTalk管理控制台中,我收到以下错误:

  

由于没有订阅者,因此无法转发已发布的消息   被找到。订阅业务流程或时发生此错误   订阅的Sendeport没有注册或有必要检查   订阅消息属性未升级。要解决这个问题   错误,请使用BizTalk管理控制台。

我确定XML文件有效,并且管道也设置为XML Receive / Transmit。你有什么想法它不工作吗?所有这些都发生在Win 7 x64机器上。

2 个答案:

答案 0 :(得分:1)

这是我在这种情况下要检查的第一件事:

<强> 0。重新启动所有主机实例并重新测试。 部署Biztalk项目时,程序集将进入GAC。 Biztalk需要重新启动使用这些程序集的主机实例,否则它将继续使用旧的程序集。 您实际上不需要重新启动所有主机实例,但为了简单起见,请尝试它。

<强> 1。确保所有已部署的项目均为绿色 进入Biztalk管理控制台,确保:

  • 业务流程绑定是您的接收和发送端口(右侧 点进&GT;属性 - &gt;绑定)
  • 该业务流程已入伍
  • SendPort入伍

<强> 2。确保输入文件正确 在Visual Studio中导入WCF服务时,它应该已创建XSD文件以定义您可以使用的模式。

右键单击TFS中的XSD文件,然后单击“生成实例”。 现在去获取生成的文件并将其用作输入。 如果现在使用该文件,则测试文件存在问题。

第3。检查发送端口的订阅: 打开Biztalk管理控制台

  • 打开“Biztalk Group”,点击新查询并搜索“订阅” 具有与“发送端口”相同名称的“服务名称”
  • 订阅是一个过滤器,用于决定邮件是否会发送 通过你的港口或被忽略。
  • 如果绑定了SendPort,则过滤器将为布尔值 表达式使用属性BTS.SPTransportID
  • 唯一标识您的端口

答案 1 :(得分:0)

整个过程是否会激活?

也许您的输入架构与输入的xml不匹配。 请根据模式验证XML,然后重新部署项目。

确保输入端口配置为“XMLReceive”,因为该管道将“MessageType”提升为上下文。

不确定是否应在ws端口上使用“XMLTransmit”。

您还可以通过BizTalk管理控制台检查邮件订阅。