【发布时间】:2012-02-20 02:40:01
【问题描述】:
我正在尝试调用 IIS 托管的 WCF Web 服务,该服务仅从 BizTalk 业务流程返回当前日期。该服务没有输入参数。
请忽略 First Receive_1 和 Last Send_1 形状,因为我刚刚使用它们来开始此编排。我的编排如下所示:
我使用“添加生成的项目...”向导将生成的引用添加到编排中的 Web 服务。我的网络服务定义如下:
[ServiceContract]
public interface ICalculator
{
[OperationContract]
DateTime GetLastExecutionDate();
}
public class CalculatorService : ICalculator
{
public DateTime GetLastExecutionDate()
{
return DateTime.Now.AddMonths(-6);
}
}
在我将生成的引用添加到 BizTalk 项目后,向导创建了一组端口和多部分消息,如下所示:
我还创建了本地消息来在这些调用之间传输数据,如下所示:
现在,我已经阅读了所有我能读到的信息,我需要构造 InputMessage 才能调用不带参数的 Web 服务。
一些论坛/网站说我需要使用 dateRequest 消息的 MessageType 简单地创建一个空白的 ConstructMessage 形状。这样做时项目无法编译,我收到以下错误消息:
other suggested item 是为空白文档执行 MessageAssignment。因此,我的 Orchestration 中的 MessageAssginment 形状具有以下内容:
xDoc = new System.Xml.XmlDocument();
xDoc.LoadXml("<GetLastExecutionDate/>");
dateRequest.parameters = xDoc;
在编译和获取部署时,我的 BizTalk 实例获取暂停,但出现以下异常:
执行发送管道失败: "Microsoft.BizTalk.DefaultPipelines.XMLTransmit, Microsoft.BizTalk.DefaultPipelines,版本=3.0.1.0,文化=中性, PublicKeyToken=31bf3856ad364e35" 来源:"XML assembler" 发送端口: “REDACTED_1.0.0.0_REDACTED.ExportData_WCFPort_dace989afd9cd9c5” URI:“http://localhost/COMPANYNAME/WCFService/Service.svc”原因:这个 汇编器无法使用这种类型检索文档规范: "GetLastExecutionDate"。
而传入服务的参数数据为:
所以我的问题是:如何调用不需要任何输入参数的 WCF 服务。
【问题讨论】:
标签: wcf biztalk biztalk-2010