无法使用 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。
您好,我正在尝试启用 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。