首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLDependency超时

SQLDependency超时
EN

Stack Overflow用户
提问于 2021-10-24 16:49:10
回答 1查看 216关注 0票数 1

当我的SQL Server表在我的WPF应用程序中被更改时,我正在尝试获取通知,大约20秒后,我得到一个过期的异常,然后是

数据库中已经有一个名为“SqlQueryNotificationStoredProcedure-{随机id}”的对象。

之后我得到了这个:

无法找到存储过程“SqlQueryNotificationStoredProcedure-{.}”。

无法找到队列“SqlQueryNotificationService-{.}”,因为它不存在或您没有权限。

无效对象名“SqlQueryNotificationService-{.}”

然后:

找不到会话句柄“{id.}”。

找不到会话句柄“{id.}”。

大多数情况下,只有超时和“已经命名为..”的对象异常显示,然后,如果我忽略这些异常并继续,SqlDependency在之后仍然运行良好,我也尝试过SqlTableDependency,但那个我无法工作,我超级迷茫.我真的很感谢你的帮助!

这是SqlDependency的代码

代码语言:javascript
复制
public static void StartDependency()
{
        using (var dbconn = new SqlConnection(ConnStr))
        {
            dbconn.Open();

            using (SqlCommand command = new SqlCommand(*my select command*, dbconn))
            {
                SqlDependency dependency = new SqlDependency(command);
                dependency.OnChange += new OnChangeEventHandler(OnDependencyChange);

                using (SqlDataReader reader = command.ExecuteReader())
                {

                }
            }
        }
}

private static void OnDependencyChange(object sender, SqlNotificationEventArgs e)
{
        SqlDependency dependency = sender as SqlDependency;
        dependency.OnChange -= OnDependencyChange;
        Console.WriteLine(e.Source);
        Console.WriteLine(e.Info);
        Console.WriteLine(e.Type);
        StartDependency();
}

在创业的时候,我这样做:

代码语言:javascript
复制
SqlDependency.Start(ConnStr);

AppDomain.CurrentDomain.UnhandledException += (s, e) => { SqlDependency.Stop(ConnStr); };
Application.Current.MainWindow.Closing += (s, e) => { SqlDependency.Stop(ConnStr); };

StartDependency();

编辑:即使我没有在SQLDependency.Stop(ConnStr)上调用‘UnhandledException’,它仍然会抛出相同的异常,并且在.NET 5上使用最新的System.Data.SqlClient。

EN

回答 1

Stack Overflow用户

发布于 2021-10-25 17:44:31

最后,我使用了SqlDependencyEx,这是开箱即用的!我注意到它显式地将超时设置为60000秒,所以这可能对SqlDependency也有帮助,但据我所知,我不需要设置类似的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69698875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档