Worker Role本地存储的文件系统位置及日志文件路径问询
Azure Worker Role本地存储的文件系统位置
嘿,我来给你捋清楚这个问题——Worker Role的Local Storage在实例文件系统里的位置分Windows和Linux两种场景:
Windows实例
默认的根路径是这个格式:
C:\Resources\directory\{deployment-id}.{role-name}\LocalStorage\{local-storage-name}
里面的占位符分别对应:
{deployment-id}:你的云服务部署唯一标识ID,是一串自动生成的字符{role-name}:你在云服务中定义的Worker Role名称{local-storage-name}:你在ServiceDefinition.csdef文件里给Local Storage配置的自定义名称
举个实际例子,假设你的Worker Role叫OrderProcessWorker,Local Storage命名为WorkerLogStorage,那你的日志文件所在的具体路径大概是:
C:\Resources\directory\a1b2c3d4.OrderProcessWorker\LocalStorage\WorkerLogStorage
你创建的日志文件就直接存在这个目录下。
Linux实例
如果是运行在Linux上的Worker Role,Local Storage的路径格式是:
/var/lib/waagent/Microsoft.Azure.Plugins.RemoteFileShare/{guid}/{local-storage-name}
这里的{guid}是系统生成的唯一标识符,{local-storage-name}同样是你配置的存储名称。
另外给你个实用小提示:别硬编码这个路径!在Worker Role代码里,你可以用下面的方式动态获取Local Storage的根路径,这样不管部署环境怎么变化都不会出错:
// C# 示例代码 var localResource = RoleEnvironment.GetLocalResource("YourLocalStorageName"); string logFilePath = Path.Combine(localResource.RootPath, "your-log-file.log");
内容的提问来源于stack exchange,提问作者Shaul Behr




