2016-01-24 3 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 немедленно прекратите? в отличие от добавления к в application_end 'защищен недействительным Application_Start() { // ... SqlDependency.Start (ConfigurationManager.ConnectionStrings [ "DefaultConnection"] ConnectionString.); } защищен недействительными Application_End() { SqlDependency.Stop (ConfigurationManager.ConnectionStrings [ "DefaultConnection"] ConnectionString.); } ' – DotnetShadow

+0

Я обновил свой ответ. Хотя я никогда не пользовался до события ApplicationStopping, поэтому я не знаю, нормально ли использовать его для вашей ситуации. попробуйте и дайте мне знать. Также ознакомьтесь с этим https://github.com/aspnet/Hosting/blob/430c55440b3528427d934c074264ef8c8cbdf739/src/Microsoft.AspNet.Hosting.Abstractions/ApplicationLifetime.cs Возможно, вы захотите использовать ApplicationStopped вместо –

+0

Спасибо, что я didn ' t знаю, что существовали события – DotnetShadow

Смежные вопросы