3

I'm using the following code to generate a connectionstring

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);

But when I run a command like below

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

    client.ExecuteControlCommand(command);
}

I continuously get the error "Kusto client failed to send a request to the service: Request headers must contain only ASCII characters."

I've enabled verbose tracing and I see it's still trying to connect with my Azure User instead of the AadApplicationKeyAuthentication

Here is the log line:

P.RestClient2 Information: 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 packages used:

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

UPDATE:

If I use FullFx 4.7.1 and their NuGetPackages it works!

  <package id="Microsoft.Azure.Kusto.Data" version="6.1.8" targetFramework="net471" />
  <package id="Microsoft.Azure.Kusto.Ingest" version="6.1.8" targetFramework="net471" />
4

1 回答 1

0

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

于 2019-04-09T20:48:48.240 回答