无法使用 powershell 为 web 角色启用诊断

Not able to enable Diagnostics for web role using powershell

您好,我正在尝试启用 Web 角色的诊断,但是当 运行 脚本出现以下错误时 https://docs.microsoft.com/en-us/azure/cloud-services/cloud-services-dotnet-diagnostics

$storage_name = "testdeploy"
$key = "keyvalue"
$config_path="E:\Tempvs\AzureCloudService3\AzureCloudService3\bin\Release\app.publish\Extensions\PaaSDiagnostics.MvcWebRole1.PubConfig.xml"
$service_name="testmyjsdiag"
$storageContext = New-AzureStorageContext -StorageAccountName $storage_name -StorageAccountKey $key
Set-AzureServiceDiagnosticsExtension -StorageContext $storageContext -DiagnosticsConfigurationPath $config_path -ServiceName $service_name -Slot Production -Role MvcWebRole1

Set-AzureServiceDiagnosticsExtension : Cannot bind parameter 'StorageContext'. Cannot convert the "Microsoft.WindowsAzure.Commands.Storage.AzureStorageContext" value of type "Microsoft.WindowsAzure.Commands.Storage.AzureStorageContext" to type "Microsoft.WindowsAzure.Commands.Common.Storage.AzureStorageContext". At E:\TK_Backup\Drive\PowerShell Scripts\Enable Web Role Diagnostics.ps1:6 char:54 + ... reServiceDiagnosticsExtension -StorageContext $storageContext -Diagno ... + ~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Set-AzureServiceDiagnosticsExtension], ParameterBindingException + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.WindowsAzure.Commands.ServiceManagement.Extensions.SetAzureServiceDiagnosticsExtensionCommand

这似乎是一个已知问题,所有此类参数都应该更改为通用接口类型 IStorageContext,以便它们与存储帐户版本无关。

作为解决方法,我们可以通过使用 -StorageAccountName-StorageAccountKey 来使用 Set-AzureServiceDiagnosticsExtension cmdlet,如下所示:

Set-AzureServiceDiagnosticsExtension -StorageAccountName $storage_name -StorageAccountKey $key

我们也可以使用这个脚本来获取上下文:

$StorageAccount= Get-AzureStorageAccount -Name "YouStorageAccount"
$context= $StorageAccount.Context

这里有类似案例,请参考it