簡體   English   中英

C#MVC IIS長時間運行的請求

[英]C# MVC IIS long running requests

我有一個C#MVC應用程序。 我知道其中一個電話大約需要12個小時,我正在生成一些報告。

我想知道IIS是否會使進程運行這么長時間。 如果我將其異步運行,它將運行並以某種方式收起並讓他運行這么長時間?

通常,這是非常差的做法。 您的應用程序池可能出於許多無法控制的原因而被回收。 您將受益於在外部過程中進行處理,然后通過IIS向用戶提供結果。

但是,從.net 4.5.2( https://blogs.msdn.microsoft.com/dotnet/2014/05/05/announcing-the-net-framework-4-5-2/ )開始,您可以使用HostingEnvironment.QueueBackgroundWorkItem API。 其背后的想法是,在正常關閉應用程序池的情況下,IIS將嘗試完成此工作。

我假設報告必須使用類似SSRS的內容。 為什么不在后端創建批處理作業以在指定的時間運行報告。 使用報告的狀態更新表,然后僅在前端輪詢狀態。 准備就緒時,只需下載即可。 想象一下,如果您的報告已經運行了6個小時,並且依賴於網站正常運行。 如果有人重新啟動網站,則需要6個小時的處理時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM