Hangfire和VB.NET - 在Application Startup类中配置内容

时间:2014-08-28 00:22:28

标签: c# asp.net vb.net background-process hangfire

本周早些时候,我遇到了Scott Hanselman关于ASP.NET中后台处理的帖子(http://www.hanselman.com/blog/HowToRunBackgroundTasksInASPNET.aspx)。我过去编写的例程会经常自动命中页面以执行某些任务,但这个后台处理想法是我从未考虑过的,而Hangfire(http://hangfire.io/)看起来非常适合我的后台处理需要(主要是发送电子邮件)。

要使HangFire继续运行(通过NuGet安装后),我需要在Application Startup类中启动它。该文档提供了C#代码,我不确定如何转换为VB.NET。它看起来像一些lambda代码,我通过使用LINQ对它有点熟悉,但是我无法快速解决这个问题。

public void Configure(IAppBuilder app)
{
    app.UseHangfire(config =>
    {
        config.UseSqlServerStorage("<connection string or its name>");
        config.UseServer();
    });
}

这是我开始的地方,基本上几乎没有,我知道......:)

Public Sub Configuration(app As IAppBuilder)
     'This is where I know this code should go... 
End Sub

我对这里发生的事情以及如何将此代码移植到VB.NET表示赞赏。谢谢!

2 个答案:

答案 0 :(得分:4)

您应该能够将其写为:

Public Sub Configure(app As IAppBuilder)
    Dim act = Sub(config As IBootstrapperConfiguration)
                config.UseSqlServerStorage("<...>")
                config.UseServer()
              End Sub

    app.UseHangfire(act)
End Sub

有关在VB.Net中创建多行lambda的更多信息,请参阅MSDN

答案 1 :(得分:1)

我一定是做错了。我也发现斯科特的博客文章非常有趣。我也使用VB而且遇到了麻烦。代码@rfernandes共享是一个受欢迎的网站。但是,我在运行时遇到错误。

这是我的代码:

Public Sub Configuration(app As IAppBuilder)
    Dim act = Sub(config As IBootstrapperConfiguration)
                  config.UseSqlServerStorage("HangfireDb")
                  config.UseServer()
              End Sub

    app.UseHangfire(act)
End Sub

config.UseSqlServerStorage(“HangfireDb”)调用中发生错误。抛出带有消息“列,参数或变量#5:无法找到数据类型datetime2”的SqlException。我不知道该怎么办这个。

***发布此非答案后,我意识到我需要发布一个单独的问题。有关故事的其余部分,请参阅this Stackoverflow question