2017-02-22 13 views
0

私は実際には奇妙な問題が発生しています。PowerBIClientは特定の状況下でSystem.ArrayTypeMismatchExceptionを生成します

Exception thrown: 'System.ArrayTypeMismatchException' in mscorlib.dll 

Additional information: Attempted to access an element as a type incompatible with the array. 

スタックトレースが私にこの例を示します:PowerBIClientのソースコードに見えるようにしようとしますが

at System.Collections.Generic.List`1.Add(T item) 
    at Microsoft.PowerBI.Api.V1.PowerBIClient.Initialize() 
    at Microsoft.PowerBI.Api.V1.PowerBIClient..ctor(ServiceClientCredentials credentials, DelegatingHandler[] handlers) 
    at Apps.Kinetic.Reports.Endpoint.Service.Reports.g1u0.GenerateAccessToken(String _Reference) in D:\*masked*.cs:line 575 

を私は次の例外を取得し、すべての最新PowerBI nuget-のパッケージとの依存関係の彼らの最新の反復と私は、それがJsonConvertリストに型Iso8601TimeSpanConverterのクラスを追加しようとしないこと初期で発見ちょうどここを見て:

/// </summary> 
private void Initialize() 
{ 
    this.Datasets = new Datasets(this); 
    this.Gateways = new Gateways(this); 
    this.Imports = new Imports(this); 
    this.Workspaces = new Workspaces(this); 
    this.Reports = new Reports(this); 
    this.BaseUri = new Uri("https://api.powerbi.com"); 
    SerializationSettings = new JsonSerializerSettings 
    { 
     Formatting = Formatting.Indented, 
     DateFormatHandling = DateFormatHandling.IsoDateFormat, 
     DateTimeZoneHandling = DateTimeZoneHandling.Utc, 
     NullValueHandling = NullValueHandling.Ignore, 
     ReferenceLoopHandling = ReferenceLoopHandling.Serialize, 
     ContractResolver = new ReadOnlyJsonContractResolver(), 
     Converters = new List<JsonConverter> 
      { 
       new Iso8601TimeSpanConverter() 
      } 
    }; 
    DeserializationSettings = new JsonSerializerSettings 
    { 
     DateFormatHandling = DateFormatHandling.IsoDateFormat, 
     DateTimeZoneHandling = DateTimeZoneHandling.Utc, 
     NullValueHandling = NullValueHandling.Ignore, 
     ReferenceLoopHandling = ReferenceLoopHandling.Serialize, 
     ContractResolver = new ReadOnlyJsonContractResolver(), 
     Converters = new List<JsonConverter> 
      { 
       new Iso8601TimeSpanConverter() 
      } 
    }; 
    CustomInitialize(); 
} 

を私はfiguすることはできませんなぜ私のアプリケーションでこの現象が発生しているのか、いくつかのバージョンのデモサンプルでは完全に動作しています。しかし、4.6.1で通常の.NETコンソールアプリケーションを初めて使用したときにも動作していたことはわかっています。しかし、今は.NET 4.6.1フレームワークを使って.NET Coreコンソールアプリケーションを使用しています。これ以外のすべてはうまく動作します。ここで

は、問題のスクリーンショットです:

Screenshot of the issue

私はしばらく前にではなく、PowerBIに関連する同様の問題で、この開発者を発見しました。しかし答えはありません。

Adding Iso8601TimeSpanConverter to JsonConverter list throws ArrayTypeMismatch exception

答えて

0

あなたが今提供の問題へのリンクは、この問題を解決するために私を助けたヒントが含まれています。私の場合は、GACにインストールされているNewtonsoft.Json.dllの複数のバージョンが原因でした。ライブラリリファレンスを最新バージョンに解決するようにアプリケーションを設定した後、例外はなくなりました。

関連する問題