如何在Azure SDK 2.5中更改每个服务配置的诊断存储位置
在Azure SDK 2.5中,存储帐户在角色的wadcfgx中设置如下:如何在Azure SDK 2.5中更改每个服务配置的诊断存储位置,azure,azure-web-roles,azure-diagnostics,Azure,Azure Web Roles,Azure Diagnostics,在Azure SDK 2.5中,存储帐户在角色的wadcfgx中设置如下: <PrivateConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> <StorageAccount name="myDiagnosticAccount" endpoint="https://core.windows.net/" /> 问题是,我想为暂存和生产
<PrivateConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
<StorageAccount name="myDiagnosticAccount" endpoint="https://core.windows.net/" />
问题是,我想为暂存和生产使用单独的诊断帐户。像这样:
登台
<PrivateConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
<StorageAccount name="myProductionDiagStorageAccount" endpoint="https://core.windows.net/" />
</PrivateConfig>
用于生产
<PrivateConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
<StorageAccount name="myStageDiagStorageAccount" endpoint="https://core.windows.net/" />
</PrivateConfig>
但我看不到任何可能的方法来实现这一点,因为此配置是按角色而不是按服务配置进行的。在前面的SDK中,我曾设置两个不同的诊断连接字符串-“Microsoft.WindowsAzure.Plugins.diagnostics.ConnectionString”,并且一切正常
我现在如何在SDK 2.5中实现这一点?你说得对。使用SDK 2.5,无法为不同的部署环境定义不同的存储帐户 一种可能是保留两个单独的诊断配置文件(一个用于暂存,另一个用于生产)。您需要在部署期间禁用诊断功能,一旦部署代码,就可以使用Cmdlet启用诊断功能 事实上,这似乎是基于这篇博文推荐的方法:(请参阅标题为“通过PowerShell启用诊断扩展”的部分)。从博客帖子: 由于Azure SDK 2.5使用扩展模型,因此诊断 扩展名、配置和到的连接字符串 诊断存储不再是部署包的一部分,并且 cscfg。所有诊断配置都包含在 wadcfgx。这种方法的优点是诊断代理 和设置与项目分离,可以动态地 即使在部署应用程序后也已启用和更新 由于这一变化,需要重新考虑一些现有的工作流- 而不是将诊断配置为应用程序的一部分 部署到可以首先部署应用程序的每个环境 应用到环境中,然后为应用诊断配置 信息技术从VisualStudio发布应用程序时,此过程 自动为您完成。但是,如果您正在部署 使用PowerShell的VS之外的应用程序,然后您必须安装 扩展将通过PowerShell单独启动 更新-2015年5月26日 SDK 2.6实际上支持不同部署环境的不同存储帐户。从: 现在可以在服务中指定诊断存储帐户 配置(.cscfg)文件使使用不同的 针对不同环境的诊断存储帐户
如果您已经在使用SDK 2.5,我建议您将其升级到SDK 2.6。Ouch。这意味着,当我决定迁移到v2.4而不是v2.5时,我是对的!除非有人在其云服务中需要ETW,否则我的建议是坚持使用2.4,并希望在2.6中情况会有所改善。是否可以在发布之前直接运行构建后事件并编辑wadcfgx?老实说,我不知道这一点。你可以试一试,看看效果如何。