gpt4 book ai didi

.net - 在 Windows Azure 中托管多版本服务

转载 作者:行者123 更新时间:2023-12-02 07:32:26 26 4
gpt4 key购买 nike

我们目前正处于一个新项目的开发阶段,该项目将部署到 Windows Azure。该产品将是一个使用新的 ASP.NET MVC Web API 的可公开访问的 Web API。我们需要做的是随着时间的推移支持 API 的多个版本。例如,当我们部署时,它将是版本 1。除非有强制契约(Contract)更改,否则该版本号不应更改。这意味着,如果在版本 1 中,我们有一些服务路由,例如:

/v1/user/{id}

它支持 GET/POST,对于 POST,它支持 Name 值。好吧,也许在版本 2 中,我们想要更改 POST 接受的内容,现在我们将 Name 更改为 FullName,并且它还支持 FirstName 和 LastName。

这会给任何使用版本 1 和该方法的人带来问题,我们所做的新更改将破坏他们的功能。

因此我们希望能够添加服务版本控制支持

/v1/user/{id}

将继续工作并使用旧库等。我们并排部署版本 2,以便消费者可以迁移到使用

/v2/user/{id}

当我们慢慢淡出旧的。

因此,简而言之,我们希望能够在 Windows Azure 中并行托管我们的 Web 服务的多个版本,其中包含不同的路由/合约、不同的核心库等。任何人都知道我们如何做到这一点?

最佳答案

您可以使用 ARR 来提供路由功能。它是一个 IIS 模块,可以通过 Azure 启动任务添加。请参阅这篇文章,了解如何安装 ARR:

http://robindotnet.wordpress.com/2011/07/21/how-to-install-iis-application-request-routing-in-windows-azure/

然后,您可以将应用程序的每个版本作为单独的部署进行托管,并设置 ARR 以转发到正确的 *.cloudapp.net 地址。

另一个想法是在同一部署上托管所有版本,并使用主机 header 在它们之间进行路由。即(version1.yourdomain.com、version2.yourdomain.com)。

查看服务定义架构的 WebRole/Sites/Site/VirtualApplication 部分:

http://msdn.microsoft.com/en-us/library/windowsazure/gg557553.aspx

关于.net - 在 Windows Azure 中托管多版本服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10335060/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com