我创建了一个本地WCF服务,它有一个方法InsertOrUpdate(String)
,它连接到数据库并插入/更新数据。如果我使用here(8)中的教程代码运行此服务并使用VS 2013中的WCF测试客户端进行测试,那么这一切都很有效。
现在我想通过BizTalk Server应用程序调用此方法,因此我已从服务中保存了WSDL文件,并通过使用WCF服务向导将其导入到我的BizTalk项目中。然后我创建了一个小型编排,如下所示:
in端口指向我硬盘上的目录,并查找各种xml文件。 out端口设置为到http://localhost:43250/Services/MyService.svc的HTTP传输。我已经在本地计算机上签署并部署了BizTalk应用程序,如果我将xml文件放在端口目录中,它会在短时间后消失,但我的服务未被调用。在BizTalk管理控制台中,我收到以下错误:
由于没有订阅者,因此无法转发已发布的消息 被找到。订阅业务流程或时发生此错误 订阅的Sendeport没有注册或有必要检查 订阅消息属性未升级。要解决这个问题 错误,请使用BizTalk管理控制台。
我确定XML文件有效,并且管道也设置为XML Receive / Transmit。你有什么想法它不工作吗?所有这些都发生在Win 7 x64机器上。
答案 0 :(得分:1)
这是我在这种情况下要检查的第一件事:
<强> 0。重新启动所有主机实例并重新测试。 部署Biztalk项目时,程序集将进入GAC。 Biztalk需要重新启动使用这些程序集的主机实例,否则它将继续使用旧的程序集。 您实际上不需要重新启动所有主机实例,但为了简单起见,请尝试它。
<强> 1。确保所有已部署的项目均为绿色 进入Biztalk管理控制台,确保:
<强> 2。确保输入文件正确 在Visual Studio中导入WCF服务时,它应该已创建XSD文件以定义您可以使用的模式。
右键单击TFS中的XSD文件,然后单击“生成实例”。 现在去获取生成的文件并将其用作输入。 如果现在使用该文件,则测试文件存在问题。
第3。检查发送端口的订阅: 打开Biztalk管理控制台
答案 1 :(得分:0)
整个过程是否会激活?
也许您的输入架构与输入的xml不匹配。 请根据模式验证XML,然后重新部署项目。
确保输入端口配置为“XMLReceive”,因为该管道将“MessageType”提升为上下文。
不确定是否应在ws端口上使用“XMLTransmit”。
您还可以通过BizTalk管理控制台检查邮件订阅。