2016-01-24 68 views
0

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

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

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

// Stop SqlDependency 
SqlDependency.Stop() 
+0

你提供参考System.Data.SqlClient? –

+0

是的,但asp.net 5没有global.asax的概念,所以我不知道什么时候我应该调用上面的 – DotnetShadow

回答

2

您可以将启动代码在你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核心

+0

感谢那么,替代方法是使用sqlDependency? 用你上面的例子用sqlDependency直接停下来?而不是添加到应用程序结尾 'protected void Application_Start() {...} SqlDependency.Start(ConfigurationManager.ConnectionStrings [“DefaultConnection”]。 } 保护无效Application_End() { SqlDependency.Stop(ConfigurationManager.ConnectionStrings [ “DefaultConnection”]的ConnectionString); }' – DotnetShadow

+0

我已经更新了我的答案。尽管我在ApplicationStopping事件之前从未使用过,但我不知道是否可以将它用于您的情况。试试看,让我知道。也看看这个https://github.com/aspnet/Hosting/blob/430c55440b3528427d934c074264ef8c8cbdf739/src/Microsoft.AspNet.Hosting.Abstractions/IApplicationLifetime.cs 也许你想用ApplicationStopped而不是 –

+0

谢谢你,我没有' t知道这些事件存在 – DotnetShadow