asp.net-mvc - MVC4 和多个 Windows Azure Web 角色

标签 asp.net-mvc azure asp.net-mvc-4 azure-web-roles

我的 MVC4 项目中有 2 个 Web 角色,并且希望设置路由,使得对 www.mysite.com/api/的所有请求都应路由到 roleA,而任何其他请求都应路由到 roleB。 (这样设置的原因是我们可以独立扩展 api 或 UI 角色实例,如果需要,请怀疑这个想法) 另外,如果我有第三个 webrole 作为 mysite.com 的子域托管,即 admin.mysite.com ,我可以将请求从 www.mysite.com/admin 路由到 admin.mysite.com 。如果是这样,是否有关于如何设置开发环境的指导。

最佳答案

这里有几个选项:

  • 在同一 WebRole 上运行所有 Web 应用程序并使用主机 header ,以允许通过使用主机 header (例如 api.mysite.com)访问每个 Web 应用程序。除了主机 header 之外,您还可以将虚拟目录添加到主 Web 应用程序 (mysite.com/api)。更多信息:How to Configure a Web Role for Multiple Web Sites 。 (这可能不是您正在寻找的解决方案,因为您想要独立扩展 Web 应用程序)
  • 使用不同的云服务。您不能将同一端点(例如端口 80)用于同一云服务中的多个角色。如果您希望多个 Web 角色使用同一端点,则需要将它们拆分到多个云服务上。这将允许您独立扩展实例,并且通过为每个云服务使用 CNAME,您可以拥有如下内容:mysite.cloudapp.net => www.mysite.com , mysiteadmin.cloudapp.net => admin.mysite.com, mysiteapi.cloudapp.net => api.mysite.com 。使用ARR您甚至可以使用 www.mysite.com/api 等虚拟目录,并将请求路由到 api.mysite.com
  • 创建 3 个 WebRole:MySiteWebRole、ApiWebRole、AdminWebRole。 MySiteWebRole 将有一个输入 Http 端点(端口 80),其他端点将使用另一个端口(输入,以便使用负载均衡器)。在 MySiteWebRole 上使用 ARR,您可以将请求重定向到 ApiWebRole 和 AdminWebRole。示例:对 api.mysite.com 的所有请求都将使用 ARR 路由到 mysite.cloudapp.net:5838。

关于asp.net-mvc - MVC4 和多个 Windows Azure Web 角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12396493/

相关文章:

html - 在 MVC 3 Razor 中以两列而不是一列显示字段的模板

azure - 为什么我无法删除空的应用服务计划?

postgresql - Azure Postgres 的 pg_dump 失败

c# - 空的 MVC4 应用程序,如何创建一个返回 json 的简单测试 Web api Controller ?

asp.net - MVC 4 Action 结果

c# - 为构造函数类指定固定值和容器中的其他变量

c# - Linq GroupBy 匿名类型错误 MVC4

javascript - 如何在 asp.net mvc View 中从 ienumerable 中选择一行

基于 Azure 的 Umbraco 网站 - 登录时,我会立即退出

c# - ASP.NET MVC 4 将 Windows 身份验证应用于单个 Controller ?