如何使用站点管理器获取webrole实例的域名?

时间:2012-10-29 08:34:54

标签: azure azure-web-roles

我正在使用站点管理器在每个实例中获取iis日志的文件路径,并将它们上传到blob存储。

问题来了,在我的项目中,有两个版本的服务,一个是调试版本,另一个是在线版本,我只能从服务实例上传iis日志。为了管理项目,我需要检查域名以判断实例是否在在线服务中,以便我可以使用相同的代码更新调试和在线服务。

到目前为止,这是我的代码:

SiteManager sm = new SiteManager();
foreach (var site in sm.Sites)
{
    string[] logDir = GetIISLogDir(site);
    foreach (string filePath in logDir)
    {
        UploadLogToStorage(filePath);
    }
}

我想我需要从变量网站获取域名,并决定是否上传日志。

2 个答案:

答案 0 :(得分:2)

您需要对此使用Get Deployment操作(REST API)。

您可以在实例中访问当前部署ID(RoleEnvironment.DeploymentId)。您可以在调用Get Deployment时使用此id来获取有关当前部署的信息,例如部署槽(prod / staging),url ...

答案 1 :(得分:0)

Windows Azure诊断支持自动上传IIS日志。您是否考虑过使用此功能?如果您正在运行诊断插件,则可以远程配置。如果您只是将DM配置为使用不同的存储帐户进行生产与开发(最佳实践),那么您将无需确定哪个(部署ID无论如何都不同)。除非您没有使用PaaS模型(例如IaaS或WAWS),否则实际上无需编写代码来自行上传日志。