我想完成的工作:我想從asp.net頁面後面的代碼中調用一個長時間運行的業務邏輯方法(在用戶點擊按鈕時)並讓該進程異步運行。該過程具有一些業務對象作爲參數。一旦程序啓動,用戶應該顯示一個屏幕,指示他們將通過電子郵件發送結果;這裏重要的是用戶不必等待過程完成。做這個的最好方式是什麼?該過程已經存在,並在我的項目中運行,但頁面在運行時只是掛起。ASP.NET在後臺執行長時間運行的方法
最初我想過將該方法轉移到Web服務。因爲它需要一個廣泛的參數列表,我將保持簽名相同並傳遞Web服務業務對象,但是我收到命名空間錯誤。特別是「參數類型MyBusinessLogic.MyObject不能分配給參數類型MyWebService.MyObject」,即使我的網站和Web服務引用同一個DLL。我明白爲什麼會發生這種情況,但我需要解決這個問題。
該解決方案的實際實施並不十分關鍵。如果有一些方法可以在ASP.NET中異步運行方法調用,那我真不知道。如果沒有發送和XML參數列表並將其解析爲業務對象,我唯一的選擇用於Web服務?
爲什麼不啓動一個新線程來運行該進程,並返回響應以將用戶重定向到信息頁面? http://msdn.microsoft.com/en-us/library/aa645740(v=vs.71).aspx –
這樣的線程在ASP.Net中是不鼓勵的。正確的過程是使用異步ASP.Net頁面方法。更多信息在這裏:http://msdn.microsoft.com/en-us/library/system.web.ui.pageasynctask。aspx – Jeremy