2

我有一个包含 3 个 azure web 角色和 1 个工作角色的解决方案。

这些角色每个都有自己的天蓝色部署项目,因为它们需要不同的子域并且可能必须独立部署。

在开发对 url 敏感的方面(如跨多个子域的 cookie、角色之间的互连等)时,Azure 计算模拟器的不断变化的虚拟 IP(我目前有 127.0.0.2、127.0.0.3 和 127.0. 0.8(由于某种原因没有介于两者之间))成为一个问题。此外,由于浏览器会将每个 IP 识别为不同的主机,因此我需要 dns 地址来实现跨子域的 cookie。

关于这个主题似乎没有很多信息材料,所以也许我的方法是错误的,但是你其他人如何解决这些情况?

1) 使用完整的 IIS 而不是 IIS Express。我不知道这是否是一个可行的解决方案,我想它会停止更改地址,但我希望尽可能长的轻量级 IIS Express。此外,我不确定是否可以使用稳定的子域(与生产的子域不同)而无需过多的手动工作。

2) 使用ServiceDefinition.csdef 中的hostHeader 属性。仅适用于手动更改主机文件,如果不删除主机文件条目,我将无法访问生产代码(容易出错且乏味)

3)某种形式的反向代理,但这真的感觉有点矫枉过正。

我希望我只是忘记了一些明显的事情;)

问候,
Pharao2k

[编辑] 我想要的只是让我的三个项目同时调试,同时包含一个包含所有三个主机名或一个 dns 名称(每个项目都有子域)的 url。也许我在尝试这个时失去了理智,但我似乎无法弄清楚如何做到这一点。

  • 如果我使用 IIS Express 和三个 Azure 部署项目,每次按编译时,每个项目都会获得另一个 IP (127.0.0.X)。当然,每次按 F5 时,我都可以编辑主机文件并刷新 dns 缓存,但这是不可接受的。

  • 如果我使用完整的 IIS 和三个 Azure 部署项目,它不会让我一次启动多个 -> 无法使用。

  • 如果我为我的所有角色使用一个组合的 Azure 项目,那么我将必须维护至少 5 个 azure 项目......单个项目(对于真正的部署,正如我所说,它们必须是可独立部署的)和组合的一个。而且我很确定这会以某种方式让我发疯,而且这绝对不是一个经过测试的场景。 [编辑 #2] 哇,即使在这里 IP 地址也会发生变化,所以回到修改主机文件 + dns 每次 F5 后刷新 -.-

我无法想象我使用子域的情况如此不寻常,我不明白为什么其他人似乎没有遇到这个问题。

4

2 回答 2

3

I would suggest consolidating the Web Roles into a single role. You'll get an easier deployment to manage, better value of money (i.e. a smaller minimum deployment size) and a single dimension to scale.

You can use different port numbers or host headers to direct traffic to the correct endpoint.

There are plenty of articles available which describe how to do this, for example: http://msdn.microsoft.com/en-us/library/windowsazure/gg433110.aspx

于 2012-09-26T10:53:40.033 回答
1

调出每个项目(参考项目,而不是 Azure 角色项目)的属性。转到项目属性-> Web。我检查了“使用本地 IIS 服务器”和“使用 IIS Express”。为了锁定,我在项目 URL 中设置了我想要的 URL。

我使用 http://localhost:[端口号] 但是一旦停止选择随机 IP 和端口,您应该能够根据需要配置服务器和主机文件。

于 2012-10-01T22:46:49.503 回答