私はWCF Json-Rpc Service Modelに懸命に取り組んできました。私は WCF と WCF の拡張性についてかなりの初心者ですが、ようやく Web ブラウザーからの要求を処理できるようになりました :) 要約すると、エンドポイント動作、操作セレクター、およびメッセージ フォーマッターを実装しました。
最新のソース コードは、MSDN フォーラムのこの投稿にあります。
現在、そのための WCF クライアントを作成しようとしていますが、次のエラーで立ち往生しています。
Manual addressing is enabled on this factory, so all messages sent must be pre-addressed.
これは私がクライアントを作成する方法です:
private int communicationTimeout = 10;
private int communicationPort = 80;
private string jsonRpcRoot = "/json.rpc";
public void InitializeClient()
{
Uri baseAddress = new UriBuilder(Uri.UriSchemeHttp, Environment.MachineName, communicationPort, jsonRpcRoot).Uri;
EndpointAddress address = new EndpointAddress(baseAddress.AbsoluteUri);
ChannelFactory<IJsonService> channelFactory = new ChannelFactory<IJsonService>(new WebHttpBinding(), address);
channelFactory.Endpoint.Behaviors.Add(new JsonRpcEndpointBehavior());
IJsonService typedProxy = channelFactory.CreateChannel();
int a = typedProxy.StartTransport(10);
}
これが私の(テスト)サービス契約です。なるべくシンプルにしました
[ServiceContract(Namespace = "")]
public interface IJsonService
{
[OperationContract]
IList<Mission> GetMissions();
[OperationContract]
int StartTransport(int missionId);
[OperationContract]
int TransportCompleted(int missionId);
}