Kusto客户端无法向服务发送请求:请求标头必须仅包含ASCII字符

问题描述 投票:1回答:1

我正在使用以下代码生成连接字符串

var kustoUri = $"https://{clusername}.{region}.kusto.windows.net";
var dmKustoUri = $"https://ingest-{clusername}.{region}.kusto.windows.net";

this.engineKustoConnectionStringBuilder = new KustoConnectionStringBuilder(kustoUri)
    .WithAadApplicationKeyAuthentication(applicationClientId, applicationKey, authority);
this.dmKustoConnectionStringBuilder =
    new KustoConnectionStringBuilder(dmKustoUri)
        .WithAadApplicationKeyAuthentication(applicationClientId, applicationKey, authority);

但是当我运行如下命令时

using (var client = KustoClientFactory.CreateCslAdminProvider(this.engineKustoConnectionStringBuilder))
{
    var command = CslCommandGenerator.GenerateTableCreateCommand(table, columns);

    client.ExecuteControlCommand(command);
}

我不断收到错误“Kusto客户端无法向服务发送请求:请求标头必须只包含ASCII字符。”

我已启用详细跟踪,我发现它仍在尝试连接我的Azure用户而不是AadApplicationKeyAuthentication

这是日志行:

P.RestClient2信息:0:,2019-04-09T08:58:26.1875455Z,P.RestClient2,Information,5CG83138PZ,5CG83138PZ / dotnet / 6744,6744,13324,cffdd7bc-7480-4141-a15b-9b6ce10523bc,cffdd7bc-7480 -4141-a15b-9b6ce10523bc,DN-RestClient-ExecuteControlCommand,KD2RunCommand; 94b12015-64aa-45a6-b087-b593965673ce,7EB32A3F,“$$ HTTPREQUEST [RestClient2]:Verb = POST,Uri = https://REDACTED.westeurope.kusto.windows.net/v1/rest/mgmt,App = dotnet,User = AzureAD \JoeyChömpff,ClientVersion = Kusto.Data:6.2.0-preview; .NET Core 2.0 / CLRv4.0.30319.42000 / [clr.dll!FileVersion not found],ClientRequestId = KD2RunCommand; 94b12015-64aa-45a6-b087-b593965673ce“

使用的Nuget包:

<PackageReference Include="Microsoft.Azure.Kusto.Data.NETStandard" Version="6.1.8" />
<PackageReference Include="Microsoft.Azure.Kusto.Ingest.NETStandard" Version="6.1.8" />

更新:

如果我使用FullFx 4.7.1和他们的NuGetPackages它可以工作!

  <package id="Microsoft.Azure.Kusto.Data" version="6.1.8" targetFramework="net471" />
  <package id="Microsoft.Azure.Kusto.Ingest" version="6.1.8" targetFramework="net471" />
c# .net-standard-2.0 azure-data-explorer
1个回答
0
投票

感谢您报告此事,@ JSC。从快速浏览一下,我相信它是.NET Framework的HttpClient中HttpClient的行为之间的差距,我们将看一看。

© www.soinside.com 2019 - 2024. All rights reserved.