2014-08-28 205 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