簡體   English   中英

ASP.NET Core 2.0 Entityfarmework Core錯誤Ubuntu

[英]ASP.NET Core 2.0 Entityfarmework Core error Ubuntu

Iam即將在Raspberry pie上發布我的ASP.NET Core 2.0 Web-Api。 在Windows 10計算機上本地運行我的應用程序效果很好,但是當我將其部署到Raspberry(ubuntu.16.04-arm)時,實體框架出現問題。

一旦執行數據庫操作,Iam將收到以下錯誤:

失敗:Microsoft.EntityFrameworkCore.Query [100100]迭代上下文類型為“ NFCDataRESTApi.SQLiteDataBase.DataBase”的查詢結果時,數據庫中發生異常。 System.TypeInitializationException:Microsoft.Data.Sqlite.SqliteConnection的類型初始值設定項引發了異常。 ---> System.Reflection.TargetInv ocationException:調用的目標已引發異常。 ---> System.DllNotFoundException:無法加載DLL'e_sqlite3':找不到指定的模塊或其依賴項之一。 (來自HRESULT的異常:0x8007007E)來自SQLitePCL。內部異常堆棧跟蹤的結尾---在System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj,Object [] parameters,Object []的System.RuntimeMethodHandle.InvokeMethod(Object target,Object [] arguments,Signature sig,Boolean構造函數)在Microsoft.Data.Sqlite.Utilities.BundleInitializer.Initialize()處位於System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlagsinvokeAttr,Binder活頁夾,Object []參數,CultureInfo文化)處。 .cctor()-內部異常堆棧跟蹤的結尾--Microsoft.EntityFrameworkCore.Inter上的Microsoft.EntityFrameworkCore.Storage.Internal.SqliteRelationalConnection.CreateDbConnection() 1.get_Value() at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected) at Microsoft.EntityFrameworkCore.Storage.Internal.SqliteRelationalConnection.Open(Boolean errorsExpected) at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable nal.LazyRef 1.get_Value() at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected) at Microsoft.EntityFrameworkCore.Storage.Internal.SqliteRelationalConnection.Open(Boolean errorsExpected) at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable 1。 Enumerator.BufferlessMoveNext(Boolean buffer)at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions。<> c__DisplyClass12_0 2.<Execute>b__0(DbContext c, TState s) at Microsoft.EntityFrameworkCore.Storage.Internal.NoopExecutionStrategy.Execute[TState,TResult](TState state, Func 3 verifySucceeded) at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, Func 2操作,Func 2 verifySuccee ded, TState state) at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable功能2 verifySuccee ded, TState state) at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable 1的2.<Execute>b__0(DbContext c, TState s) at Microsoft.EntityFrameworkCore.Storage.Internal.NoopExecutionStrategy.Execute[TState,TResult](TState state, Func 3操作,Func 3 verifySucceeded) at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, Func 。 Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider的Enumerator.MoveNext()在Microsoft.EntityFram的<_TrackEntities> d__17 2.MoveNext() at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor 2.MoveNext() at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor 1.EnumeratorExceptionInterceptor.MoveNext()System.TypeInitializationException:Microsoft.Data.Sqlite.SqliteConnection的類型初始值設定項引發了異常。 ---> System.Reflection.TargetInvocatio nException:調用的目標已引發異常。 ---> System.DllNotFoundException:無法加載DLL'e_sqlite3':找不到指定的模塊或其依賴項之一。 (來自HRESULT的異常:0x8007007E)來自SQLitePCL。內部異常堆棧跟蹤的結尾---在System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj,Object [] parameters,Object []的System.RuntimeMethodHandle.InvokeMethod(Object target,Object []參數,Signature sig,Boolean構造函數) Microsoft.Data.Sqlite.Utilities.BundleInitializer.Initialize()的System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlags invokeAttr,Binder活頁夾,Object []參數,CultureInfo文化)處的Microsoft.Data.Sqlite.SqliteConnection ..cctor()-內部異常堆棧跟蹤的結尾--Microsoft.EntityFrameworkCore.Int處的Microsoft.EntityFrameworkCore.Storage.Internal.SqliteRelationalConnection.CreateDbConnection() ernal.LazyRef 1.get_Value() at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected) at Microsoft.EntityFrameworkCore.Storage.Internal.SqliteRelationalConnection.Open(Boolean errorsExpected) at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable 1。 Enumerator.BufferlessMoveNext(Boolean buffer)at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions。<> c__DisplayClass12_0 2.<Execute>b__0(DbContext c, TState s) at Microsoft.EntityFrameworkCore.Storage.Internal.NoopExecutionStrategy.Execute[TState,TResult](TState state, Func 3 verifySucceeded) at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, Func 2操作,Func 2 verifySucceeded, TState state) at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable 1.Enumerator Microsoft的.MoveNext()在Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider。<_ TrackEntities> d__17 2.MoveNext() at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor 2.MoveNext() at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor 1.EnumeratorExceptionInterceptor.MoveNext()失敗:Microsoft.AspNetCore.Server.Kestrel [13]連接ID“ 0HL8JR800T0MD”,請求ID“ 0HL8JR800T0MD:00000003”:應用程序引發了未處理的異常。 System.TypeInitializationException:Microsoft.Data.Sqlite.SqliteConnection的類型初始值設定項引發了異常。 ---> System.Reflection.TargetInvocationException:調用的目標引發了異常。 ---> System.DllNotFoundException:無法加載DLL'e_sqlite3':找不到指定的模塊或其依賴項之一。 (來自HRESULT的異常:0x8007007E)來自SQLitePCL。內部異常堆棧跟蹤的結尾---在System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj,Object [] parameters,Object []的System.RuntimeMethodHandle.InvokeMethod(Object target,Object []參數,Signature sig,Boolean構造函數) Microsoft.Data.Sqlite.Utilities.BundleInitializer.Initialize()的System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlags invokeAttr,Binder活頁夾,Object []參數,CultureInfo文化)處的Microsoft.Data.Sqlite.SqliteConnection ..cctor()-內部異常堆棧跟蹤的結尾--Microsoft.EntityFrameworkCore.Int處的Microsoft.EntityFrameworkCore.Storage.Internal.SqliteRelationalConnection.CreateDbConnection() ernal.LazyRef 1.get_Value() at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected) at Microsoft.EntityFrameworkCore.Storage.Internal.SqliteRelationalConnection.Open(Boolean errorsExpected) at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable 1。 Enumerator.BufferlessMoveNext(Boolean buffer)at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions。<> c__DisplayClass12_0 2.<Execute>b__0(DbContext c, TState s) at Microsoft.EntityFrameworkCore.Storage.Internal.NoopExecutionStrategy.Execute[TState,TResult](TState state, Func 3 verifySucceeded) at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, Func 2操作,Func 2 verifySucceeded, TState state) at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable 1.Enumerator Microsoft的.MoveNext()在Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider。<_ TrackEntities> d__17 2.MoveNext() at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor 2.MoveNext() at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor 1.EnumeratorExceptionInterceptor.MoveNext()位於C:\\ Users \\ morit \\ Desktop \\ NFCRESTApi \\ RESTApi \\ RESTApi \\ Repositories \\ PermissionRepository.NFCDataRESTApi.Repositories.PermissionRepository.GetAdminUsers()在NFCDataRESTApi.Filters.ValidateUserFilter.OnActionExecuting(ActionExecutingContext上下文)中位於C:\\ Users \\ morit \\ Desktop \\ NFCRESTApi \\ RESTApi \\ RESTApi \\ Filters \\ ValidateUserFilter.cs:Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State接下來,Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__10.MoveNext()處的Scope&范圍,Object&狀態,Boolean&isCompleted)-從上一個引發異常的位置開始的堆棧跟蹤-在System.Runtime.ExceptionServices Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State&next,Scope)處的.ExceptionDispatchInfo.Throw()(Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext上下文) Microsoft.AspNetCore.Mvc.Internal.ControllerActionActionInvoker.d__14.MoveNext()中的&作用域,對象和狀態,布爾值和已完成)-從上一個引發異常的位置開始的堆棧跟蹤-在System.Runtime.ExceptionServices.ExceptionDispatchInfo System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任務任務)處的.Throw()Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.d__22.MoveNext()處的任務任務-從上一個引發異常的位置開始的堆棧跟蹤- -在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()在Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext context)在Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State&next,Scope&scope,Object&state, Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.d__17.MoveNext()處的布爾值(=已完成)-從上次引發異常的位置開始的堆棧跟蹤-在System處System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() .Runti 我在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任務任務)在Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.d__15.MoveNext()處的me.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任務任務)-從上一個堆棧開始跟蹤在Microsoft.System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任務任務)在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任務任務)在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()在拋出異常的位置.AspNetCore.Builder.RouterMiddleware.d__4.MoveNext()---從上一個引發異常的位置開始的堆棧結束跟蹤---位於System.Runtime.CompilerServices.TaskAwaiter的System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()。位於Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.d__6.MoveNext()上的System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任務任務)處的ThrowForNonSuccess(任務任務)- -從先前引發異常的位置開始的堆棧末尾---在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任務任務)在System.Runtime.CompilerServices.TaskAwaiter在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() Microsoft.AspNetCore.Hosting.Internal.RequestServicesContainerMiddleware.d__3.MoveNext()上的.HandleNonSuccessAndDebuggerNotification(任務任務)-從上次引發異常的位置開始的堆棧結束跟蹤-在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw( ),位於Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Frame`1.d__2.MoveNext()的System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任務任務)

有趣的部分可能是:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.DllNotFoundException: Unable to load DLL 'e_sqlite3': The specified module or one of its dependencies could not be found.

IAM使用實體框架核心

有什么建議嗎?

編輯:

我的csproj:

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
    <PackageReference Include="SQLitePCL.raw" Version="0.9.4-pre1" />
    <PackageReference Include="Swashbuckle.AspNetCore" Version="1.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.0.0" />
 </ItemGroup>

如果dotnet恢復不起作用:可能您需要nuget包所依賴的本地/ Linux庫?

您可以通過app-get安裝sqllite。 盡管我不認為這是必要的。 但是在dotnet docker映像上之前有http / ssl問題,我必須安裝額外的linux庫。

試試這個: https : //iqbalnaved.wordpress.com/2014/07/10/how-to-install-sqlite-3-8-2-on-ubuntu-14-04-and-commands-for-creating-database -和桌/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM