我们已将BizTalk Schema作为第三方供应商的WCF服务公开,以便他们可以将消息推送到我们的ESB上。 WCF服务具有单个函数,该函数接受并返回该模式类型的消息。问题在于,如果没有及时做出回应或其他消息,例如ESB生成错误第三方应用程序失败/崩溃。
只要消息的格式正确并且返回的消息中的数据不被供应商或我们自己使用,消息中的内容并不重要。供应商还提供自己的WCF服务,我们可以使用它来传递消息,如果我们愿意的话。我想修改现有的WCF服务或手动创建一个立即返回响应的新服务,但也将消息传递到ESB以进行进一步处理。
我使用svcutil从WSDL创建了一个接口,但是找不到有关如何手动创建WCF服务以公开BizTalk架构的任何代码示例。所有示例都指向向导。
向导创建的代码是什么?有一个例子吗?谢谢。
编辑2013年8月23日
因此,似乎更改向导创建的wcf服务不是一种选择,也不是手动创建新服务。我已经尝试创建一个使用该服务的业务流程并发送一个响应,然后将该绑定绑定到同一个接收端口,如果行程有效,则该接收端口有效,但如果有错误则不能运行。此外,它只在行程完成后运行,这是不好的。我需要立即回应。
答案 0 :(得分:2)
您可以更改向导创建的wcf服务,但通常最好使用向导使用命令行中的以下内容重新发布它。
BtsWcfServicePublishingWizard -WcfServiceDescription=C:\..\WcfServiceDescription.xml
WcfServiceDescription.xml将位于您在\ App_Data \ Temp \中发布Web服务的文件夹下,例如C:\的Inetpub \ wwwroot的\ BizTalkWcfService \程序App_Data \ TEMP \ WcfServiceDescription.xml
在源代码管理中保留此xml文件的副本是个好主意。针对Web服务下的向导运行向导不是一个好主意,因为它删除并重新创建文件夹中的所有内容,因此您可能设法破坏它,因此首先将其复制出来并针对副本运行。