在Azure中的同一个Cloud Service中托管MVC前端和WebAPI后端

时间:2015-12-15 05:42:25

标签: azure asp.net-web-api2 azure-cloud-services

我有一个MVC前端应用程序(相对较小),它有自己的DAL实现,使用存储库模式。我正在考虑在自己的WebAPI项目中移动DAL以保持更清晰的分离。 MVC应用程序使用云服务(Web角色)托管在Azure中。 WebAPI将仅由前端应用程序使用,暂时不会暴露给任何其他外部应用程序,但即便如此,我仍然希望将其作为单独的应用程序/ Web /辅助角色托管,而不是将DAL保留在同一个项目。

这是一个好主意:

1)将WebAPI项目作为Web / Worker角色托管在同一个Cloud Service中,还是应该创建一个新的网站/云服务来托管它?使用相同的云服务是首选,记住成本因素和n / w延迟问题。

2)如果我托管相同的云服务,那么更适合用于web api项目 - web或worker角色?

3)在某处我读到我应该使用Azure中的Service Bus来进行MVC前端和WebAPI后端之间的交互。这是建议的做法吗?还是有更简单的方法来完成它?

1 个答案:

答案 0 :(得分:0)

我建议您使用相同的云服务。原因是复杂性和失败情况,当您将应用程序拆分为多个云服务时,当您从源代码管理中更新服务时会出现问题

您需要进行两次部署,并确保它们处于同步等状态。

我会在一个云服务中简化服务运行时。

如果您真的想要在代码级别将它们分开并且知道它们可以正常工作,那么它又是首选和舒适。两个云服务应该没问题。

从经验来看,这些重构决策在未来会增加很多工作。正面或负面取决于您对问题的理解以及您头脑中无法放在纸上的大图的图像:)。

乐意帮助,你的确如此-CB