2017-10-10 142 views
0

我需要一些帮助来弄清楚如何从asp.net mvc web应用程序启动SQL Server代理作业。只需点击一个按钮即可开始作业。什么是正确的做法?从asp.net mvc 4 web应用程序运行SQL作业

我刚刚安装了hangfire,我试图配置它,但我坚持下面的代码。我在正确的轨道上?

任何线索都会非常有帮助。谢谢。

public class MyController : Controller 
{  
public void ExecJob(int Id) 
    { 
    BackgroundJob.Enqueue(() => UpdateDB(Id)); 
    } 

public void UpdateDB(Id) 
    { 
    //how to start the sql job 
    } 
} 
+0

你是什么意思的“SQL工作”。你是指运行存储过程还是运行实际的Sql Server代理作业? – STLDeveloper

+0

我认为你最好的选择是编写一个存储过程来调用sql-server作业。需要警告的是,运行该网站的帐户的“身份”必须经过测试,以确定它是否可以启动sql-server作业。 PS你学习Quartz.Net的速度越快,那么你越会尝试通过sql-server-job来欺骗所有东西。 – granadaCoder

+0

@STLDeveloper:一个sql服务器代理作业 – newbie

回答

0

您可以从Web应用程序上的一个按钮,点击执行存储过程

存储过程:

CREATE PROCEDURE RunJob 
     @JobName NVARCHAR(100) 
    AS 
    BEGIN 
     -- SET NOCOUNT ON added to prevent extra result sets from 
     -- interfering with SELECT statements. 
     SET NOCOUNT ON; 

     EXEC msdb.dbo.sp_start_job @JobName 
    END 
    GO 

在数据库中创建该存储过程,并通过作业名称为参数,或者可以在存储过程中对作业名称进行硬编码,以防止意外执行其他SQL作业。

相关问题