【问题标题】:Separate C# Project for Reporting - Best Practice? [closed]用于报告的单独 C# 项目 - 最佳实践? [关闭]
【发布时间】:2018-01-13 19:26:40
【问题描述】:

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

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

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

是否将报告移动到他们自己的项目与他们自己的 IIS 站点并以某种方式从我的主站点指向它?

是否要使报告异步?

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

【问题讨论】:

  • 您使用哪些报告工具?
  • 在 ASP.NET 网页表单页面中使用带有报表视图的 RDLC 报表时,我遇到了类似的情况 - 将会话设置为只读有助于解决问题 - stackoverflow.com/a/33311623/1910735
  • 没有报告工具,只有带有 Linq 的 C#,没有报告工具。
  • 那么我建议你编写存储过程/视图,以便它们在数据库上执行并返回一个数据集 - 并在后端使用异步

标签: c# asp.net iis reporting


【解决方案1】:

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

asyncawait 用于阻塞/长时间运行的进程是很好的做法。这样做会在执行时“释放”请求,因此 IIS 可以服务另一个请求,直到进程完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多