繁体   English   中英

IIS进程之外的长期运行的存储过程

[英]Long-running stored procedure out of IIS process

我有一个运行时间较长的存储过程,该存储过程从旧系统中导入大量记录,并且需要数小时才能执行。 在执行过程中,可能需要重新启动IIS进程或重新启动Web服务器,或者其他导致IIS进程终止并因此中止存储过程执行的操作。

我已决定在断开连接的环境中从w3wp.exe进程中运行存储过程。

解决方案:

  • Service Broker激活:我读过这篇文章,但它很复杂, 诊断服务队列很困难
  • 在Windows服务下运行:
  • 定义一个SQL Server作业:它需要SQLAgentReaderRole角色权限,并且我需要将参数传递给存储过程

还有其他解决方案吗?

我个人更喜欢Windows Service路由。 最近,我使用了自托管的WebApi ,它使我可以从MVC(使用HttpClient或System.Net.HttpWebRequest等)开始长期运行的工作。

CLR组装。

使用此代码将您的代码更改为类库,并将类库的dll结果导入为SSMS的汇编函数

CREATE ASSEMBLY myAssembly from 'E:\Projects\CL.dll'

现在您可以调用它而无需担心IIS停止。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM