【问题标题】:SQLDepedency ASP.NET MVC 6SQL依赖 ASP.NET MVC 6
【发布时间】:2016-01-24 01:44:43
【问题描述】:

在 ASP.NET MVC 6 应用程序中如何启动和停止 sql 依赖项?

在以前的版本中,您将使用 Global.asax Application_Start 事件,但 asp.net mvc 6 没有此事件。

 //Start SqlDependency with application initialization
 SqlDependency.Start(connString);

 // Stop SqlDependency
 SqlDependency.Stop()

【问题讨论】:

  • 你引用 System.Data.SqlClient 了吗?
  • 是的,但是 asp.net 5 没有 global.asax 的概念,所以我不确定什么时候应该调用上述代码

标签: asp.net asp.net-mvc asp.net-core asp.net-core-mvc dnx


【解决方案1】:

您可以将启动代码放在您的 Startup.cs 文件中

试试这样的

public class Startup {
    public void Configure(IApplicationBuilder app, IApplicationLifetime lifetime) {
        lifetime.ApplicationStarted.Register(() => {
            //Start SqlDependency with application initialization
            SqlDependency.Start(connString);
        });

        lifetime.ApplicationStopping.Register(() => {
            // Stop SqlDependency
            SqlDependency.Stop()
        });
    }

    public static void Main(string[] args) => WebApplication.Run<Startup>(args);
}

但要小心,SqlDependency 在 dnx core 中不可用

【讨论】:

  • 谢谢你,使用 sqlDependency 的替代方法是什么?在上面的示例中,sqlDependency 立即停止了吗?而不是添加到 application_end protected void Application_Start() { //... SqlDependency.Start(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString); } protected void Application_End() { SqlDependency.Stop(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString); }
  • 我已经更新了我的答案。虽然在ApplicationStopping事件之前我没用过,所以不知道你的情况用它是否可以。试一试,让我知道。也看看这个github.com/aspnet/Hosting/blob/… 也许你想用 ApplicationStopped 代替
  • 感谢我不知道这些事件的存在
  • 你在哪里转播SqlDependency.OnChange?试图弄清楚这一点,这样我就不必在集线器内做这件事
  • @salek 我从未使用过 OnChange 事件,但我认为 Configure 方法中的任何地方都应该可以工作......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多