azure - 在 Azure 中的同一云服务中托管 MVC 前端和 WebAPI 后端

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

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

这是一个好主意吗:

1) 在同一云服务中托管 WebAPI 项目作为 Web/ worker 角色,还是应该创建一个新的网站/云服务来托管它?考虑到成本因素和无延迟问题,最好使用相同的云服务。

2) 如果我托管在同一个云服务中,对于 Web api 项目使用哪个更明智 - Web 角色还是辅助角色?

3) 我在某处读到,我应该使用 Azure 中的服务总线来实现 MVC 前端和 WebAPI 后端之间的交互。这是建议的方法还是有更简单的方法来完成它?

最佳答案

我建议您使用相同的云服务。原因是复杂性和故障场景,当您将应用程序拆分为多个云服务时,当您从源代码控制更新它们服务时就会出现问题

您将需要进行两次部署并确保它们同步等。

我会在一个云服务中保持服务运行时的简单性。

如果您确实想在代码级别将它们分开并知道它们会正常工作,那么这又是偏好和舒适度。两个云服务应该没问题。

根据经验,像这样的重构决策会在未来增加大量工作。积极或消极取决于您对问题的理解以及您头脑中无法写在纸上的大局的形象:)。

很高兴为您提供帮助,真诚的 -CB

关于azure - 在 Azure 中的同一云服务中托管 MVC 前端和 WebAPI 后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34281883/

相关文章:

sql-server - mssql特殊字符编码问题

rest - 服务器如何知道不记名 token 是否有效而不将其存储在磁盘或内存中

c# - RoleEnvironment.IsAvailable 在应用程序启动时设置为 false

azure - 使用 Azure CLI 重新启动 Azure 云服务实例

rest - 无法访问 Microsoft Azure VM 中的休息服务

Azure DevOps 使用变量作为部署阶段之间的条件

c# - IIS 编译错误 -2146232576 AspNetInitializationExceptionModule

azure - Azure Scale Profile 门户边栏选项卡中的 "Target Range"有何含义?

node.js - 在 Azure 上部署 MEAN+Webpack

javascript - 将对象和文件从 ajax 非法调用传递到 Web Api 2 Controller