2

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

为了让 HangFire 运行(通过 NuGet 安装后),我需要在 Application Startup 类中启动它。该文档提供了我不确定如何转换为 VB.NET 的 C# 代码。它看起来像一些 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,我将不胜感激。谢谢!

4

2 回答 2

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

于 2014-08-28T01:20:01.557 回答
1

我一定做错了什么。我也发现 Scott 的博客文章很有趣。我也使用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。我不知道该怎么处理这个。

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

于 2014-10-21T15:58:42.473 回答