[ad_1]
InfluxDB データベースへの接続を確立しようとしています。 C# MVC アプリを IIS に公開して実行すると、次のエラーが発生します。
引用:System.IO.FileLoadException
メッセージ : ファイルまたはアセンブリ ‘netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51’ またはその依存関係の 1 つを読み込めませんでした。 見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。 (HRESULT からの例外: 0x80131040)
StackTrace : System.Reflection.CustomAttribute._CreateCaObject (RuntimeModule pModule, IRuntimeMethodInfo pCtor, Byte** ppBlob, Byte* pEndBlob, Int32* pcNamedArgs) で
System.Reflection.CustomAttribute.CreateCaObject (RuntimeModule モジュール、IRuntimeMethodInfo ctor、IntPtr& blob、IntPtr blobEnd、Int32& namedArgs) で
System.Reflection.CustomAttribute.GetCustomAttributes (RuntimeModule decorModule、Int32 decoratedMetadataToken、Int32 pcaCount、RuntimeType attributeFilterType、ブール値の mustBeInheritable、IList derivedAttributes、ブール値の isDecoratedTargetSecurityTransparent) で
System.Reflection.CustomAttribute.GetCustomAttributes (RuntimeMethodInfo メソッド、RuntimeType caType、ブール値の継承) で
DevExpress.DataAccess.ObjectBinding.ObjectMember..ctor (MemberInfo memberInfo) で
DevExpress.DataAccess.Native.ObjectBinding.ObjectDataSourceFillHelper.<>c.b__24_5 (MemberInfo 情報) で
System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() で
System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext() で
System.Collections.Generic.List`1..ctor (IEnumerable`1 コレクション) で
System.Linq.Enumerable.ToList で[TSource](IEnumerable`1 ソース)
DevExpress.DataAccess.Native.Web.ObjectDataSourceWizardService.GetMemberInfo (型、IObjectDataSourceMemberFilterService filterMemberService) で
DevExpress.DataAccess.Native.Web.ObjectDataSourceWizardService.GetAvailableObjectDescriptions (文字列コンテキスト) で
lambda_method(Closure、IQueryBuilderRequestController、String) で
DevExpress.XtraReports.Web.Native.ClientControls.Services.RequestManagerBase`2.WrapWithTryCatchAction (文字列 controllerTypeName、文字列 methodName、文字列 webActionName、ControllerFunc インボーカー、TController コントローラー、文字列 json) で
必要な netstandard.dll がわかりません。 .NET Framework を 4.5.2 から 4.6.1 に変更しましたが、エラーが解消されませんでした。 どうすればこれを解決できますか?
私が試したこと:
データベースから読み取る関数:
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using InfluxDB.Client; using InfluxDB.Client.Api.Domain; using InfluxDB.Client.Api.Service; using InfluxDB.Client.Core; namespace ServerSide { public class ReadInfluxDB { private readonly string Token = "TestTokenWEBICC"; public async Task Main() { var client = new InfluxDBClient("http://localhost:8086", Token); var flux = "from(bucket:\"TestDB\") |> range(start: 0)"; var queryApi = client.GetQueryApi(); // // QueryData // var tables = await queryApi.QueryAsync(flux);//, "org_id" var id = tables[0].Records; var measure = tables[1].Records; var val = tables[3].Records; var time = tables[4].Records; var count = id.Count(); List<Value> Values = new List<Value>(); tables.ForEach(table => { table.Records.ForEach(record => { Console.WriteLine($"{record.GetTime()}: {record.GetValueByKey("_value")}"); }); }); for (int i = 0; i < count; i++) { Value _value = new Value(); _value.DateAndTime = Convert.ToDateTime(time[i].GetTimeInDateTime()); _value.Measure = Convert.ToString(measure[i].GetValue()); _value.Val = Convert.ToDouble(val[i].GetValue()); Values.Add(_value); } client.Dispose(); } } public class Value { public DateTime DateAndTime { get; set; } public string Measure { get; set; } public double Val { get; set; } } }
解決策 1
アセンブリ「netstandard」Version = 2.1.0.0をロードするように具体的に指示しており、エラーメッセージはかなり具体的です。 The located assembly's manifest definition does not match the assembly reference.
つまり、バージョンが一致しません。
プロジェクト内のすべての参照を削除し、インストールされているバージョンを使用してそれらを再度追加してみてください。
解決策 2
.NET Standard 2.1 用にビルドされたライブラリまたは NuGet パッケージを参照しています。 そのライブラリは、.NET Framework のどのバージョンもサポートしていません。
プロジェクトの依存関係を確認する必要があります。
[ad_2]
コメント