0

私は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);
}
4

1 に答える 1