为什么ServiceStack OrmLite崩溃与空异常当我添加OrmLite. firebird

本文关键字:OrmLite 添加 异常 firebird ServiceStack 崩溃 为什么 | 更新日期: 2023-09-27 18:12:17

我正在评估ServiceStack和OrmLite,并想尝试使用Firebird数据库。使用ServiceStack。当我将ServiceStack.OrmLite.Firebird引用添加到c#程序集引用时,应用程序在启动时开始崩溃,并在程序集加载时出现null错误:

在Global.asax.cs中发生的代码行:

 public class AppHost : AppHostBase
    {
        public AppHost() : base("Northwind Web Services", typeof(CustomersService).Assembly) {}   // <-- Here!

例外:

System.TypeLoadException was unhandled by user code
  HResult=-2146233054
  Message=Method 'Execute' in type 'ServiceStack.Host.ServiceController' from assembly 'ServiceStack, Version=4.0.11.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.
  Source=ServiceStack
  TypeName=ServiceStack.Host.ServiceController
  StackTrace:
       at ServiceStack.ServiceStackHost..ctor(String serviceName, Assembly[] assembliesWithServices)
       at ServiceStack.AppHostBase..ctor(String serviceName, Assembly[] assembliesWithServices)
       at ServiceStack.Northwind.AppHost..ctor() in C:'dev'ServiceStack.Examples'src'ServiceStack.Northwind'ServiceStack.Northwind'Global.asax.cs:line 13
       at ServiceStack.Northwind.Global.Application_Start(Object sender, EventArgs e) in C:'dev'ServiceStack.Examples'src'ServiceStack.Northwind'ServiceStack.Northwind'Global.asax.cs:line 31
  InnerException: 

演示源代码在这里:https://github.com/ServiceStack/ServiceStack.Examples/tree/master/src/ServiceStack.Northwind(唯一需要的更改是从包管理器控制台运行Install-Package ServiceStack.OrmLite.Firebird)

下面是包管理器控制台会话:

Package Manager Console Host Version 3.1.1.0
Type 'get-help NuGet' to see all available NuGet commands.
PM> Install-Package ServiceStack.OrmLite.Firebird
Attempting to gather dependencies information for package 'ServiceStack.OrmLite.Firebird.4.0.44' with respect to project 'ServiceStack.Northwind', targeting '.NETFramework,Version=v4.0'
Attempting to resolve dependencies for package 'ServiceStack.OrmLite.Firebird.4.0.44' with DependencyBehavior 'Lowest'
Resolving actions to install package 'ServiceStack.OrmLite.Firebird.4.0.44'
Resolved actions to install package 'ServiceStack.OrmLite.Firebird.4.0.44'
Removed package 'ServiceStack.Common.4.0.11' from 'packages.config'
Successfully uninstalled 'ServiceStack.Common.4.0.11' from ServiceStack.Northwind
Removed package 'ServiceStack.Interfaces.4.0.11' from 'packages.config'
Successfully uninstalled 'ServiceStack.Interfaces.4.0.11' from ServiceStack.Northwind
Removed package 'ServiceStack.OrmLite.4.0.11' from 'packages.config'
Successfully uninstalled 'ServiceStack.OrmLite.4.0.11' from ServiceStack.Northwind
Removed package 'ServiceStack.Text.4.0.11' from 'packages.config'
Successfully uninstalled 'ServiceStack.Text.4.0.11' from ServiceStack.Northwind
Adding package 'FirebirdSql.Data.FirebirdClient.4.7.0' to folder 'C:'dev'ServiceStack.Examples'src'ServiceStack.Northwind'packages'
Added package 'FirebirdSql.Data.FirebirdClient.4.7.0' to folder 'C:'dev'ServiceStack.Examples'src'ServiceStack.Northwind'packages'
Added package 'FirebirdSql.Data.FirebirdClient.4.7.0' to 'packages.config'
Successfully installed 'FirebirdSql.Data.FirebirdClient 4.7.0' to ServiceStack.Northwind
Adding package 'ServiceStack.Interfaces.4.0.44' to folder 'C:'dev'ServiceStack.Examples'src'ServiceStack.Northwind'packages'
Added package 'ServiceStack.Interfaces.4.0.44' to folder 'C:'dev'ServiceStack.Examples'src'ServiceStack.Northwind'packages'
Added package 'ServiceStack.Interfaces.4.0.44' to 'packages.config'
Successfully installed 'ServiceStack.Interfaces 4.0.44' to ServiceStack.Northwind
Adding package 'ServiceStack.Text.4.0.44' to folder 'C:'dev'ServiceStack.Examples'src'ServiceStack.Northwind'packages'
Added package 'ServiceStack.Text.4.0.44' to folder 'C:'dev'ServiceStack.Examples'src'ServiceStack.Northwind'packages'
Added package 'ServiceStack.Text.4.0.44' to 'packages.config'
Successfully installed 'ServiceStack.Text 4.0.44' to ServiceStack.Northwind
Adding package 'ServiceStack.Common.4.0.44' to folder 'C:'dev'ServiceStack.Examples'src'ServiceStack.Northwind'packages'
Added package 'ServiceStack.Common.4.0.44' to folder 'C:'dev'ServiceStack.Examples'src'ServiceStack.Northwind'packages'
Added package 'ServiceStack.Common.4.0.44' to 'packages.config'
Successfully installed 'ServiceStack.Common 4.0.44' to ServiceStack.Northwind
Adding package 'ServiceStack.OrmLite.4.0.44' to folder 'C:'dev'ServiceStack.Examples'src'ServiceStack.Northwind'packages'
Added package 'ServiceStack.OrmLite.4.0.44' to folder 'C:'dev'ServiceStack.Examples'src'ServiceStack.Northwind'packages'
Added package 'ServiceStack.OrmLite.4.0.44' to 'packages.config'
Successfully installed 'ServiceStack.OrmLite 4.0.44' to ServiceStack.Northwind
Adding package 'ServiceStack.OrmLite.Firebird.4.0.44' to folder 'C:'dev'ServiceStack.Examples'src'ServiceStack.Northwind'packages'
Added package 'ServiceStack.OrmLite.Firebird.4.0.44' to folder 'C:'dev'ServiceStack.Examples'src'ServiceStack.Northwind'packages'
Added package 'ServiceStack.OrmLite.Firebird.4.0.44' to 'packages.config'
Successfully installed 'ServiceStack.OrmLite.Firebird 4.0.44' to ServiceStack.Northwind
PM> 

为什么ServiceStack OrmLite崩溃与空异常当我添加OrmLite. firebird

你不能混合和匹配不同版本的ServiceStack库。此错误表明它仍在尝试加载旧版本的ServiceStack v4.0.11:

消息=方法'Execute'的类型"ServiceStack.Host。ServiceController' from assembly '版本=4.0.11.0,文化=中性,PublicKeyToken=null'没有实现。

我建议克隆ServiceStackApps/Northwind存储库,它只包含一个独立的Northwind项目副本,部署在northwindd.servicestack.net Live Demo网站上,并且已经引用了最新的稳定v4.0.44库,这将使其更容易修改,而不会出现任何NuGet包升级问题。