2014-08-28 206 views
1

本周早些时候,我遇到了Scott Hanselman关于ASP.NET中后台处理的文章(http://www.hanselman.com/blog/HowToRunBackgroundTasksInASPNET.aspx)。我过去编写了一些例程,每隔一段时间自动打一个页面来运行一些任务,但是这个后台处理的想法是我从来没有考虑过的,而且Hangfire(http://hangfire.io/)看起来非常适合我的后台处理需求(主要是发送电子邮件) 。Hangfire和VB.NET - 在应用程序启动类中获取配置

为了让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

我有一种感觉,这种语法将类似于这篇文章中的概念,但我仍然不知道该去哪里... http://stackoverflow.com/questions/1771184/what-is-the-vb等价于这个c-sharp-syntax-dealing-delegates?rq = 1 – 2014-08-28 00:38:07

+0

能否请你指点一下Hangfire(.Net 4.0)的启动/帮助/示例。 – bjan 2015-12-05 18:42:08

回答

3

你应该能够写为:

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

+0

完美,谢谢....当然,在UseServer()之后减去分号。 – 2014-08-28 12:21:29

0

我一定在做错事。我也发现斯科特的博客文章颇有意思。我也使用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”)调用。带有消息“Column,parameter或variable#5:Can not find data type datetime2”的SqlException被抛出。我不知道该怎么做。

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

+0

代码在VB.NET/ASP项目中出现在哪里? – George 2015-09-23 17:41:44