我们有一个Windows Azure云服务,每个部署有两个实例。目前,部署方式如下:
部署ID a1a1...
位于生产槽中。
部署ID b2b2...
位于暂存槽中。
这些部署中的Web角色具有状态页面,可以通过以下方式访问:
http://a1a1... .cloudapp.net/status
http://b2b2... .cloudapp.net/status
在这个状态页面上,我们正在显示部署ID,我们以编程方式查找这个部署ID:
if (Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.IsAvailable)
{
return Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.DeploymentId;
}
奇怪的是,无论我们调用的两个URL中的哪一个,此状态页面都会显示部署ID b2b2...
。
不应http://a1a1... .cloudapp.net/status
显示a1a1...
作为部署ID吗?
顺便说一句:我们的域http://www.ourdomain.com/status
显示正确的部署ID a1a1...
。
答案 0 :(得分:0)
您是否已完成VIP交换以交换您的生产和登台服务?您可能会遇到这种情况有几个原因,但如果您已经进行了VIP交换,那么我会说最有可能的是您对2个不同URL的请求实际上是针对同一个托管服务。这通常是由于VIP交换后TCP连接在客户端和服务器之间保持打开造成的,这意味着HTTP请求将继续通过相同的TCP连接发送。
我要做的第一件事就是对两个服务进行RDP,并检查IIS日志以查看请求是否转到同一服务。