我正在使用站点管理器在每个实例中获取iis日志的文件路径,并将它们上传到blob存储。
问题来了,在我的项目中,有两个版本的服务,一个是调试版本,另一个是在线版本,我只能从服务实例上传iis日志。为了管理项目,我需要检查域名以判断实例是否在在线服务中,以便我可以使用相同的代码更新调试和在线服务。
到目前为止,这是我的代码:
SiteManager sm = new SiteManager();
foreach (var site in sm.Sites)
{
string[] logDir = GetIISLogDir(site);
foreach (string filePath in logDir)
{
UploadLogToStorage(filePath);
}
}
我想我需要从变量网站获取域名,并决定是否上传日志。
答案 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),否则实际上无需编写代码来自行上传日志。