1

こんにちは、アプリケーションで dualHttpBinding と webHttpBinding に関する 1 つの問題に直面しています。全体のシナリオはこちら

WCF サービス (3 つの異なるバインディングを持つ) を使用する dotNet および Android アプリケーションがあります。

1. basicHttpBinding - For dotNet app (Service1.svc)
2. webHttpBinding - For Android to access via Rest full service (Service2.svc)
3. dualHttpBinding - For push notification to dotNet app(PushServie.svc)

Android アプリが Servie2(AddOrderItems) のメソッドを消費するたびに、データベースに挿入され、代わりに dotNet アプリケーション (プッシュ通知) にメッセージが表示されます。このために、PushService で CallBackContract を使用しました。dotNet アプリから AddOrderItems メソッド (Servie2 内) にアクセスしようとすると (テスト目的で)、通知メッセージが表示されます。

しかし、私の問題は、私のAddOrderItemsがAndroidアプリから呼び出されているかどうか、いつ呼び出されているかをどのように知ることができるので、dotNetアプリで(CallBackContract経由で)メッセージを表示する必要があるかということです.

AddOrderItems メソッドを呼び出した後、Servie2.svc から PushServie.svc メソッド (CallBackMessagge) を呼び出そうとしましたが、まったくうまくいきませんでした。

Service2 と PushService.svc のコードは次のとおりです。

    // AddOrderItems method in IService2 which is implemented in Servie2.svc
    [OperationContract]
    [WebInvoke(Method = "POST", UriTemplate = "AddOrderItems", RequestFormat = 
    WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, 
    BodyStyle = WebMessageBodyStyle.Bare)]
    bool AddOrderItems(RequestOrderItemData orderItemData);

PushService.svcに実装されているIPushServiceのコールバックメソッド

    [OperationContract(IsOneWay = true)]
    void DisplayMessage(int orderID, int tableID, string tableName);

PushService の DisplayMessage のコードは次のとおりです。

 IPushNotificationCallBack Callback
    {
        get
        {
            return  
            OperationContext.Current.GetCallbackChannel<IPushNotificationCallBack>();
        }
    }

および PushService.svc のメソッド

public void DisplayMessage(int orderID, int tableID, string tableName)
{
   Callback.DisplayMessage(orderID, tableID, tableName);
}

私はグーグルで検索しようとしましたが、誰もが webHttpBindin はコールバック機能をサポートしていないと言っています。

私の懸念は、AddOrderItems から DisplayMessage メソッドを呼び出したいということです。これが何らかの改造で可能になるなら、私は本当に幸せです。

必要なコードをすべて投稿したと思う限り、他に何か必要な場合はお知らせください。投稿します。

どんな助けでも大歓迎です。

よろしく、 ガネーシャ

4

0 に答える 0