以下のコード スニペットに従って、WCF Rest サービスがあります。
[ServiceContract]
public interface IService
{
[OperationContract]
[WebInvoke(UriTemplate="/SaveList/Foos/",Method="POST")]
bool SaveList(List<Foo> myFoos);
}
このサービスは自己ホスト型サービスであり、webHttpBinding でエンドポイントを公開します。次のコード スニペットを持つクライアント コンソール アプリケーションがあります。
public void Send()
{
var myObj = new Foo{Id=1, Name="Test"};
using (WebChannelFactory<OurService.Services.IOurService> cf = new WebChannelFactory<IOurService>("WebHttpBinding_IService"))
{
IUtranetService channel = cf.CreateChannel();
using (new OperationContextScope(channel as IContextChannel))
{
var status = channel.SaveList(new[] { myObj });
}
}
}
クライアント コードは次のように例外をスローします。メッセージを受け入れることができる "http://localhost:1133/Service/SaveList" でリッスンしているエンドポイントがありませんでした。
どこが間違っているのかわかりません。UriTemplate をサービス コントラクトから削除すると、クライアントは正しい応答を返します。
どんな助けでも大歓迎です。
よろしくルチトラ