用于报告的单独 C# 项目 - 最佳做法



我在MVC C# Web项目中有一些报告,它们工作正常。但我注意到,在实时站点上,人们倾向于选择较大的报告日期范围和其他搜索条件,这将返回相当大的数据集。

由于整个网站位于一个项目中的一个 IIS 站点上,这会导致网站的其余部分挂起,直到报表完成执行。

我只是想知道处理这种情况的最佳实践是什么?

是使用自己的 IIS 站点将报表移动到他们自己的项目中,并以某种方式从我的主站点指向它吗?

是为了使报告异步吗?

我可以使用视图/存储过程,但我想远离它们。

生成报告不应使网站无响应。IIS 能够同时处理多个请求,因此只有等待报告的请求才会被阻止/等待 - 只要网站仍有可用请求,对站点的任何新请求都应该正常工作。我认为默认值是 12 个并发请求,如果所有请求都被接受,则进一步的请求将被排队。

使用asyncawait来阻止/长时间运行的进程是一种很好的做法。这样做将在执行时"释放"请求,因此 IIS 可以提供另一个请求,直到该过程完成。

最新更新