我有一个处理推送通知的网络服务,在重建之后,它现在在我启动时崩溃了。在日志中,这是堆栈跟踪,我得到以下内容:
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下的任何内容),但此目录不存在。
在解决方案资源管理器中,路径设置为正确的文件,所以我很茫然。
有谁知道如何将其指向正确的文件或解决问题?
答案 0 :(得分:1)
您正在看到d:\teamcitywork
路径,因为PDB已部署,这意味着有人建立在调试模式下并部署(更有可能)或无意中将其复制到服务器(不太可能)。
对于Could not load type
错误消息,您是否可以验证是否已将JDS.Booj.Mobile.Common
DLL的正确版本部署到服务器?我的猜测是它丢失或服务器上的版本错误,导致发生此错误。
更新:
common.dll
是您拥有源代码的文件吗?听起来JDS.Booj.Mobile.Common.SqlBuilder
命名空间不在DLL的已部署版本中,或者以某种方式更改它使其无法加载。
您有Reflector还是ILSpy?这些工具将允许反编译DLL并查看它们内部的逻辑。然后,您可以将已部署代码中的SqlBuilder
类型与计算机上的内容进行比较。