本周早些时候,我遇到了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表示赞赏。谢谢!
答案 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。