从WCF获得响应后显示消息

本文关键字:显示 消息 响应 WCF | 更新日期: 2023-09-27 17:58:33

我正在构建一个用于推送通知的WCF应用程序,用户必须首先订阅自己,订阅后客户端才能从WCF获得响应。

我使用wsDualHttpBinding作为WCF中的绑定和回调。

我不想从客户端调用递归函数。我在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);
 }

但它也给了我一个错误"Object reference not set to a instance of a Object"什么时候进行

从WCF获得响应后显示消息

您应该看看这篇文章。这应该会有所帮助。它给出了一个订阅和推送更新的简单示例。

第条

根据我们的讨论。看来你的服务很好。我假设您正在适当地调用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>");