BizTalk オーケストレーションから現在の日付を返すだけの IIS がホストする WCF Web サービスを呼び出そうとしています。このサービスへの入力パラメータはありません。
First Receive_1 と Last Send_1 シェイプは、このオーケストレーションを開始するために使用したばかりなので無視してください。私のオーケストレーションは次のようになります。
「Add Generated Items...」ウィザードを使用して、生成された参照をオーケストレーションの Web サービスに追加しました。私の Web サービス定義は次のようになります。
[ServiceContract]
public interface ICalculator
{
[OperationContract]
DateTime GetLastExecutionDate();
}
public class CalculatorService : ICalculator
{
public DateTime GetLastExecutionDate()
{
return DateTime.Now.AddMonths(-6);
}
}
生成された参照を BizTalk プロジェクトに追加した後、ウィザードは次のような一連のポートとマルチ パート メッセージを作成しました。
以下のように、これらの呼び出し間でデータを転送するローカル メッセージも作成しました。
これで、パラメーターなしで Web サービスを呼び出すために InputMessage を作成する必要があることをできる限り読みました。
一部のフォーラム/Web サイトでは、dateRequest メッセージの MessageType を使用して空白の ConstructMessage シェイプを作成するだけでよいと言っています。そうしている間、プロジェクトはコンパイルされず、次のエラー メッセージが表示されます。
もう 1 つの推奨事項は、空白のドキュメントに対して MessageAssignment を実行することです。したがって、オーケストレーションの MessageAssginment シェイプには次のようなものがあります。
xDoc = new System.Xml.XmlDocument();
xDoc.LoadXml("<GetLastExecutionDate/>");
dateRequest.parameters = xDoc;
これがコンパイルされて展開される間、私の BizTalk インスタンスは次の例外で中断されます。
送信パイプラインの実行中にエラーが発生しました: "Microsoft.BizTalk.DefaultPipelines.XMLTransmit, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" ソース: "XML アセンブラー" 送信ポート: "REDACTED_1. 0.0.0_REDACTED.ExportData_WCFPort_dace989afd9cd9c5" URI: " http://localhost/COMPANYNAME/WCFService/Service.svc " 理由: このアセンブラーは、この型 "GetLastExecutionDate" を使用してドキュメント仕様を取得できません。
サービスに渡されるパラメーター データは次のとおりです。
私の質問は次のとおりです。入力パラメーターを必要としない WCF サービスを呼び出すにはどうすればよいですか。