【问题标题】:New-AzureRmDataLakeStoreItem 'User-Agent' header must be modified errorNew-AzureRmDataLakeStoreItem 'User-Agent' 标头必须修改错误
【发布时间】:2019-03-29 18:24:30
【问题描述】:

我正在尝试使用 powershell 在 Azure Data Lake Store Gen 1 中创建一些新文件夹,但 New-AzureRmDataLakeStoreItem 和 New-AZDataLakeStoreItem 都返回错误。

我有整个ADLS的RWX权限,我有PS版

主要次要版本修订


5 1 17134 590

当我跑步时

Test-AzDataLakeStoreAccount -Name "weudevpocdtl" 

我得到了一个真实的回应。

但是,当我跑步时:

New-AZDataLakeStoreItem  -Account "weudevpocdtl" -Path "/PowerShellTest" -Folder

我得到错误:

New-AZDataLakeStoreItem : Error in getting metadata for path /PowerShellTest.
Operation: GETFILESTATUS failed with   Unknown Error: The 'User-Agent' header must be modified using the appropriate property or method.
Parameter name: name Source: System StackTrace:    at System.Net.WebHeaderCollection.ThrowOnRestrictedHeader(String headerName)
   at System.Net.WebHeaderCollection.Set(String name, String value)
   at Microsoft.Azure.DataLake.Store.WebTransport.AssignCommonHttpHeaders(HttpWebRequest webReq, AdlsClient client, RequestOptions req, String token, String opMethod, IDictionary`2 
customHeaders, Int32 postRequestLength)
   at Microsoft.Azure.DataLake.Store.WebTransport.<MakeSingleCallAsync>d__22.MoveNext().
.
Last encountered exception thrown after 5 tries. [The 'User-Agent' header must be modified using the appropriate property or method.
Parameter name: name,The 'User-Agent' header must be modified using the appropriate property or method.
Parameter name: name,The 'User-Agent' header must be modified using the appropriate property or method.
Parameter name: name,The 'User-Agent' header must be modified using the appropriate property or method.
Parameter name: name,The 'User-Agent' header must be modified using the appropriate property or method.
Parameter name: name]
[ServerRequestId:]
At line:1 char:1
+ New-AZDataLakeStoreItem  -Account "weudevpocdtl" -Path "/PowerS ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [New-AzDataLakeStoreItem], AdlsException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.DataLakeStore.NewAzureDataLakeStoreItem

当我跑步时

New-AzureRmDataLakeStoreItem  -Account "weudevpocdtl" -Path "/PowerShellTest" -Folder

我得到错误:

New-AzureRmDataLakeStoreItem : Method 'get_SerializationSettings' in type 'Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient' from assembly 
'Microsoft.Azure.Commands.ResourceManager.Common, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' does not have an implementation.
At line:1 char:1
+ New-AzureRmDataLakeStoreItem  -Account "weunappocdtl" -Path "/P ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [New-AzureRmDataLakeStoreItem], TypeLoadException
    + FullyQualifiedErrorId : System.TypeLoadException,Microsoft.Azure.Commands.DataLakeStore.NewAzureDataLakeStoreItem

在不同的租户上,我曾经能够执行这些命令并且一切正常。

我做错了什么?

感谢您的帮助

【问题讨论】:

    标签: azure powershell azure-data-lake


    【解决方案1】:

    根据数据湖团队,请参阅link- 这是我们的 SDK 使用的 Httpwebrequest 类的问题。为 httpwebrequest 设置 useragent 在 netframework 和 netcore 中是不同的:

    NET framework: webReq.UserAgent = client.GetUserAgent();
    
    net standard webReq.Headers["User-Agent"] = client.GetUserAgent()
    

    如果您稍后尝试在网络框架中进行操作,则会收到上述错误。

    当您使用这个使用我们 SDK 的 netstandard dll 的 az 模块时。当您从 windows powershell 使用它时,它会尝试在网络框架上使用网络标准 dll,这会导致此错误。

    解决方案:

    我在 net core powershell 中对此进行了测试。它运行良好。 我们正在从 httpwebrequest 迁移到 httpclient,这可能会解决问题。

    所以基本上,如果您使用的是 windows powershell,请使用 azurerm,或者使用 powershell netcore 中的 Az。

    报告了同样的错误,这里是GitHub已知问题的链接。

    https://github.com/Azure/azure-powershell/issues/8141

    我建议你使用 Powershell core , https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-windows?view=powershell-6

    它应该可以工作

    Get-AzureRmDataLakeStoreItem -Account "AccountName" -Path "/"
    New-AzureRmDataLakeStoreItem -Account "AccountName" -Path "/Staging" -Folder
    

    【讨论】:

    • 在 PowerShell 中如何添加用户代理?
    猜你喜欢
    • 2020-06-02
    • 1970-01-01
    • 2014-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多