1

プッシュ通知用のWCFアプリケーションを構築しています。このアプリケーションでは、ユーザーは最初に自分自身をサブスクライブし、サブスクライブ後にクライアントはWCFから応答を取得する必要があります。

WCFのバインディングとコールバックとしてwsDualHttpBindingを使用します。

クライアントから再帰関数を呼び出したくありません。WCFでタイマーを使用し、データベースで更新が発生するとWCFがメッセージをスローします。WCFの準備はできていますが、クライアント側でメッセージを表示できません。

ここで私の質問は、クライアントがWCFから応答を受け取ったときにメッセージを表示する方法です。

aspx.csのクライアント側コードは次のとおりです。

public void SendResult(string message)//I got message = "Test String"
{
   Response.Write(message);// it throw error "Response is not available in this context."
// I also use this code 

HttpContext.Current.Response.Write(message); // but it also give error "Object reference not set to an instance of an object."

}

これは非常に重要な質問であり、メッセージを表示する必要があります

どんな助けでもありがたいです。

編集1

サービスメソッド呼び出し

  protected void Page_Load(object sender, EventArgs e)
  {
        SocialProfilesService.SocialClient client = 
               new SocialProfilesService.SocialClient(new InstanceContext(this)); 
        client.Subscribe(userid)
  } 

編集2

私も試しました

 SynchronizationContext uiSyncContext;
 uiSyncContext = SynchronizationContext.Current;
 public void SendResult(string message)//I got message = "Test String"
 {
   SendOrPostCallback callback = delegate(object state)
    {
        Response.Write(message);
    };
    uiSyncContext.Post(callback, message);
 }

ただし、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーも表示されます。何をすべきか

4

1 に答える 1

0

この記事を見るべきです。これは役立つはずです。これは、アップデートのサブスクライブとプッシュの簡単な例です。

論文

我々の議論に従って。あなたのサービスはうまくいっているようです。SendResult を適切に呼び出してメッセージを渡していると仮定しています。これはあなたが試すことができる別のことです...これはAsp.netからのJavaスクリプトアラートです

    Page.RegisterStartupScript("startScript", "<script language=JavaScript>Message("+message+" );</script>");

    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "testmsg", "<script>alert('your message goes here');</script>");
于 2013-02-11T06:21:09.293 に答える