プッシュ通知用の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);
}
ただし、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーも表示されます。何をすべきか