1

我有一个“引擎”,我想通过 HTTP 层(由 WebAPI / WCF 托管)公开。

该引擎对大量数据执行一些简单的只读操作,并且可以真正受益于并行性。从 for(...) 到 Parallel.For(...) 的简单切换会产生奇迹。

现在我认为我们不应该在 Web 服务器中执行这种多线程,所以我试图找出托管它的最佳方式。

理想情况下,我希望将其作为标准 Web 应用程序托管在 IIS 中,使用 WebAPI 或 WCF。如果这不是一个好的解决方案,那么什么是好的选择?

在标准 Windows 服务中自托管 WebAPI 或 WCF 会更好吗?我不确定这里的问题是 IIS 还是 ASP.NET 特定的。

或者也许这不是问题,我只是太担心了?

任何输入将不胜感激。

谢谢

4

1 回答 1

0

我不完全清楚您的担忧是什么,但我会尽力为您提供一些您可以决定的基础:

您可以安全地在 IIS/ASP.NET 中使用多线程。当然,对于许多并行请求,您不需要这样做,因为并行性发生在更高级别(实际上,thoughput 会受到轻微影响,但只是轻微影响)。尽管您可以使用较低级别的并行性 ( Parallel.For) 减少延迟,但并行请求很少。

因此,ASP.NET 中的多线程更多的是减少延迟而不是增加吞吐量。

我看不出自托管会如何改变这一切。

您似乎有点担心这是一种可行的方法。尝试制定具体的问题,我会解决它们。

于 2013-08-24T09:55:45.873 回答