在BizTalk业务流程中不使用输入参数调用WCF服务

在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

我正在尝试调用IIS托管的WCF web服务,该服务仅返回BizTalk编排中的当前日期。此服务没有输入参数

请忽略第一个Receive_1和最后一个Send_1形状,因为我刚刚使用它们开始此编排。我的编排看起来像:

[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,就很可能至少解决这个问题