c#内部异常,无法加载类型

本文关键字:加载 类型 内部 异常 | 更新日期: 2023-09-27 18:29:31

我有一个处理推送通知的Web服务,重建后,当我启动它时,它会崩溃。在日志中,这是我得到的堆栈跟踪:

Stack Trace at JDS.Booj.Mobile.MySqlStorageProvider.Providers.BoojMobileStorage.<>c__DisplayClasse6.<FindOrCreateEnvironment>b__e4(MySqlConnection connection) in d:'TeamCityWork'a1d7899dc094839e'MySqlStorageProvider'Providers'BoojMobileStorage.cs:line 125
   at JDS.Booj.Mobile.MySqlCommon.MySqlDatabaseUtils.RunInConnection(String connectionString, CodeToRunInConnection code) in d:'TeamCityWork'a1d7899dc094839e'MySqlCommon'MySqlDatabaseUtils.cs:line 334
   at JDS.Booj.Mobile.MySqlStorageProvider.Providers.BoojMobileStorage.FindOrCreateEnvironment(BoojMobileEnvironment environment) in d:'TeamCityWork'a1d7899dc094839e'MySqlStorageProvider'Providers'BoojMobileStorage.cs:line 139
   at JDS.Booj.Mobile.Library.Environments.EnvironmentOperations.CreateCurrentEnvironmentIfNotExists() in c:'Users'connl1'Documents'bitbucket'booj-mobile-server'Library'Environments'EnvironmentOperations.cs:line 113
   at JDS.Booj.Mobile.Library.MobileDatabaseHelper.InitializeDatabase() in c:'Users'connl1'Documents'bitbucket'booj-mobile-server'Library'BoojMobileDatabaseHelper.cs:line 41
   at JDS.Booj.Mobile.Library.BoojMobileStartup.MobileInitialize() in c:'Users'connl1'Documents'bitbucket'booj-mobile-server'Library'BoojMobileStartup.cs:line 117
   at JDS.Booj.Mobile.Library.BoojMobileStartup.DoInitialization() in c:'Users'connl1'Documents'bitbucket'booj-mobile-server'Library'BoojMobileStartup.cs:line 96
   at JDS.Booj.Mobile.Library.BoojMobileStartup.Initialize() in c:'Users'connl1'Documents'bitbucket'booj-mobile-server'Library'BoojMobileStartup.cs:line 70
Inner Exception: Could not load type 'JDS.Booj.Mobile.Common.SqlBuilder.SqlBuilder`1' from assembly 'JDS.Booj.Mobile.Common, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null'.
Source: JDS.Booj.Mobile.MySqlStorageProvider
Stack Trace:    at JDS.Booj.Mobile.MySqlStorageProvider.DataMappers.BoojMobileMappers.BoojMobileEnvironmentMapper..cctor()

据我所知,它试图调用错误目录中的一些方法(即d:''teamcitywork下的任何方法),但该目录不存在。

在解决方案资源管理器中,路径设置为正确的文件,所以我不知所措。

有人知道如何将其指向正确的文件或解决问题吗?

c#内部异常,无法加载类型

您看到的是d:'teamcitywork路径,因为PDB已经部署,这意味着有人在调试模式下构建并部署(更有可能),或者无意中将它们复制到服务器(不太可能)。

对于Could not load type错误消息,您能否验证JDS.Booj.Mobile.Common DLL的正确版本是否已部署到服务器?我的猜测是,它要么丢失了,要么服务器上的版本错误,这导致了这个错误的发生。

更新:

common.dll是您拥有其源代码的文件吗?听起来JDS.Booj.Mobile.Common.SqlBuilder命名空间要么不在DLL的部署版本中,要么已经以某种方式进行了更改,导致无法加载。

你有Reflector或ILSpy吗?这些工具将允许反编译DLL并查看其中的逻辑。然后,您可以将部署的代码中的SqlBuilder类型与机器上的类型进行比较。