2016-01-24 66 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