我编写了一个用 C# 编写的 ASP.Net MVC / SignalR Web 应用程序,并将其托管在 Azure 虚拟机上。它上面还有一个 SQL-Server 实例和三个 Windows 服务。尽管客户端是完全异步的,但由于 SQL Server 和三个 Windows 服务占用了大量的内存和 CPU 资源,因此它的速度非常慢。我的预算并不多,所以我负担不起升级到具有更多 CPU 和内存的 VM,所以我正在寻找拆分应用程序的方法。我可能可以获得便宜的客户端托管,因为它不执行任何密集型操作,但 Windows 服务工作非常辛苦,并且对数据库进行了大量写入。我使用 Windows 服务是因为应用程序需要进行大量自主数据处理,如果服务器重置,我需要确保它们随后自动重新启动。我知道这是基于个人意见的,但我只需要可以自己研究的替代方案。