我有一个包含 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 后刷新 -.-
我无法想象我使用子域的情况如此不寻常,我不明白为什么其他人似乎没有遇到这个问题。