1

我有一个处理推送通知的网络服务,重建它后,它现在在我启动它时崩溃。在日志中,这是堆栈跟踪,我得到以下信息:

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 下的任何内容),但该目录不存在。

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

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

4

1 回答 1

1

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

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

更新:

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

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

于 2013-08-30T03:58:09.080 回答