如何将hangfire集成到DotnetNuke后端

时间:2018-02-06 04:12:48

标签: dotnetnuke hangfire

我有一个需要由后台进程处理的长进程方法。我正在考虑使用HangFire。它是一个免费的开源框架,允许您在.NET应用程序中轻松执行后台处理。问题是我是DNN的新手,我不知道如何开始。我正在谷歌搜索如何整合它,但我无法找到它的参考。任何人都知道如何将HangFire集成到DNN?

1 个答案:

答案 0 :(得分:0)

您必须创建一个.NET项目,并在该项目中安装Owin和Hangfire软件包。
在那个项目中 创建一个Owin启动类,并将您的Hangfire初始化代码放入Configuration方法中,如下所示:

using Hangfire;
using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(DnnHangfireIntegration.Startup))]

namespace DnnHangfireIntegration
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            GlobalConfiguration.Configuration.UseSqlServerStorage("HangfireConnection");
            app.UseHangfireServer();
            app.UseHangfireDashboard("/desktopmodules/hangfire");
        }
    }
}

您必须将hangfire仪表板配置为使用'/ desktopmodules / hangfire'URL,以便DNN不会拦截它。
编译项目,然后将项目DLL,Hangfire DLL和Owin DLL复制到DNN二进制文件夹中。

最后,您必须更新web.config才能告诉Hangfire如何找到启动类。您可以使用以下appsetting来做到这一点:

<add key="owin:AutomaticAppStartup" value="true"/>

也不要忘记添加连接字符串,您也可以只重用现有的连接字符串。

有关详细的演练,请查看我的博客文章:https://swimburger.net/blog/dotnet/how-to-add-hangfire-to-dnn