Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# sql依赖关系问题-通知发生多次_C#_Sql_Session_Signalr_Sqldependency - Fatal编程技术网

C# sql依赖关系问题-通知发生多次

C# sql依赖关系问题-通知发生多次,c#,sql,session,signalr,sqldependency,C#,Sql,Session,Signalr,Sqldependency,起初我没有使用会话,所以每次刷新此页面时。通知比上次多出现1次。因此,我使用了这种(会话)技术,这很有帮助,但现在有一个问题,即当我离开页面一段时间时(或者当会话在未单击“注销”按钮的情况下过期时)。我登录到应用程序,它就在那里,然后它会创建每个通知两次 protected void Page_Load(object sender, EventArgs e) { if (IsPostBack)

起初我没有使用会话,所以每次刷新此页面时。通知比上次多出现1次。因此,我使用了这种(会话)技术,这很有帮助,但现在有一个问题,即当我离开页面一段时间时(或者当会话在未单击“注销”按钮的情况下过期时)。我登录到应用程序,它就在那里,然后它会创建每个通知两次

    protected void Page_Load(object sender, EventArgs e)
    {               
                   if (IsPostBack)
                        return;


                    User _userOnLine = Session["CUser"] as User;

                    if (_userOnLine == null)
                    {
                        SqlDependency.Stop(@"XXXXXXXXXXXX");
                        Session.RemoveAll();
                        Response.Redirect(@"~\Login.aspx");  
                    }

                    if (Session["count"] == null)
                    {
                        SqlDependency.Start(@"XXXXXX");
                        SendNotification();
                    }

                    Session["count"] = 1;

 }

有什么建议吗?

我建议您使用SqlCacheDependency来管理ASP.NET应用程序中的通知。

您将在此处找到有关SqlCacheDependency的信息:

Put
SqlDependency.Stop(@“xxxxxxxxxxx”)
会话中\u结束
感谢您的回复,尝试此操作。无效。仍然会出现两次通知,您认为它的工作方式与信号器的工作方式相同。实时通知?实际上,您可以将SignalR和SqlNotification结合起来。如果SQL通知是服务器端的,那么Signal将把通知推送到客户端。