在BizTalk业务流程中不使用输入参数调用WCF服务
我正在尝试调用IIS托管的WCF web服务,该服务仅返回BizTalk编排中的当前日期。此服务没有输入参数 请忽略第一个Receive_1和最后一个Send_1形状,因为我刚刚使用它们开始此编排。我的编排看起来像:在BizTalk业务流程中不使用输入参数调用WCF服务,wcf,biztalk,biztalk-2010,Wcf,Biztalk,Biztalk 2010,我正在尝试调用IIS托管的WCF web服务,该服务仅返回BizTalk编排中的当前日期。此服务没有输入参数 请忽略第一个Receive_1和最后一个Send_1形状,因为我刚刚使用它们开始此编排。我的编排看起来像: [ServiceContract] public interface ICalculator { [OperationContract] DateTime GetLastExecutionDate(); } public class CalculatorServi
[ServiceContract]
public interface ICalculator
{
[OperationContract]
DateTime GetLastExecutionDate();
}
public class CalculatorService : ICalculator
{
public DateTime GetLastExecutionDate()
{
return DateTime.Now.AddMonths(-6);
}
}
我使用“添加生成的项…”向导将生成的引用添加到编排中的web服务。我的web服务定义如下所示:
[ServiceContract]
public interface ICalculator
{
[OperationContract]
DateTime GetLastExecutionDate();
}
public class CalculatorService : ICalculator
{
public DateTime GetLastExecutionDate()
{
return DateTime.Now.AddMonths(-6);
}
}
将生成的引用添加到BizTalk项目后,向导创建了一组端口和多部分消息,如下所示:
我还创建了本地消息以在这些调用之间传输数据,如下所示:
现在,我到处都读到我需要构造InputMessage来调用一个没有参数的web服务
一些论坛/网站说,我需要简单地创建一个带有MessageType dateRequest Message的空白消息形状。执行此操作时,项目不会编译,我收到以下错误消息:
最重要的是为一个空白文档执行消息分配。因此,我的编排中的MessageAssignment形状具有以下内容:
xDoc = new System.Xml.XmlDocument();
xDoc.LoadXml("<GetLastExecutionDate/>");
dateRequest.parameters = xDoc;
xDoc=new System.Xml.XmlDocument();
xDoc.LoadXml(“”);
dateRequest.parameters=xDoc;
在编译并部署get时,我的BizTalk实例get将挂起,但出现以下异常:
执行发送管道时出错:
“Microsoft.BizTalk.DefaultPipelines.XMLTransmit,
Microsoft.BizTalk.DefaultPipelines,版本=3.0.1.0,区域性=中性,
PublicKeyToken=31bf3856ad364e35“源:“XML汇编程序”发送端口:
“已修订\u 1.0.0.0 \u已修订。导出数据\u WCFPort\u dace989afd9cd9c5”
URI:“原因:此
汇编程序无法使用以下类型检索文档规范:
“GetLastExecutionDate”
传入服务的参数数据为:
因此,我的问题是:如何调用不需要任何输入参数的WCF服务。在消息分配形状中使用的字符串中可能需要一个XML名称空间。我建议您根据web服务模式验证XML字符串,以确保它生成有效的消息 您还可以使用xsd.exe从web服务架构创建.NET类
有关在编排中构造消息的方法的完整列表,请参阅。在消息分配形状中使用的字符串中可能需要XML命名空间。我建议您根据web服务模式验证XML字符串,以确保它生成有效的消息 您还可以使用xsd.exe从web服务架构创建.NET类
有关在编排中构造消息的方法的完整列表,请参阅。从visual studio中转到服务请求消息架构文件 右键单击->生成实例 获取生成的XML实例,并用单引号替换所有双引号 然后将其粘贴到作业中的LoadXml()中
从visual studio中转到服务请求消息架构文件 右键单击->生成实例 获取生成的XML实例,并用单引号替换所有双引号 然后将其粘贴到作业中的LoadXml()中
您使用XMLTransmit管道,可能有多个根本原因导致它抛出错误消息 “原因:此汇编程序无法使用以下类型检索文档规范:xxx” 最可能的原因是您没有部署与正在传输的消息匹配的架构
但好消息是,在这种情况下不需要XMLTransmit管道。只需将发送管道更改为PassThruTransmit,它很可能至少会解决这个问题。您使用XMLTransmit管道,可能会有多个根本原因导致它抛出错误消息 “原因:此汇编程序无法使用以下类型检索文档规范:xxx” 最可能的原因是您没有部署与正在传输的消息匹配的架构 但好消息是,在这种情况下不需要XMLTransmit管道。只需将发送管道更改为PassThruTransmit,就很可能至少解决这个问题