2

メソッドが実装されたIClientMessageInspectorインターフェイスがあります。このメソッドでは、クライアントに設定されたオブジェクトBeforeSendRequest()を取得したいと考えています。Session何かのようなもの。

    public object BeforeSendRequest(ref Message request, IClientChannel channel)
    {
        //Instantiate new HeaderObject with values from ClientContext;
        var dataToSend = new MyCustomHeader
            {
                MyValue = HowDoIGetClientSession["abcValue"];
            };

        var typedHeader = new MessageHeader<CustomHeader>(dataToSend);
        var untypedHeader = typedHeader.GetUntypedHeader("custom-header", "s");

        request.Headers.Add(untypedHeader);
        return null;
    }

この質問と非常によく似たものが必要だと思います。

4

2 に答える 2

0

クライアント アプリケーションと WCF サービスの両方が同じアプリケーション (実際には IIS の仮想アプリケーション) でホストされている場合、セッション状態を共有できます。

ただし、WCF 内で ASP.Net 互換モードを有効にする必要があります (これを参照してください: https://msdn.microsoft.com/en-us/library/ms752234.aspx ) 。

アプリケーションが別のアプリケーションでホストされている場合でも実行できますが、セッション状態サーバーなど、セッション用の外部ストレージを使用する必要があります (詳細については、https ://msdn.microsoft.com/en-us/ を参照してください)。 library/ms178586%28v=vs.140%29.aspx )。

同じ方法で進めますが、両方の web.config ファイルで同じセッション ストレージを設定する必要があります。

それが役に立てば幸い。

于 2015-07-24T10:26:42.610 に答える