|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
也不知道,我同学昨天说数据挖掘很好。明天碰到一个奇异成绩,有一个ASP.NET项目,会见时老是显现不克不及加载EF4.1的毛病(项目中对EF的援用都已晋级至EF5.0):CouldnotloadfileorassemblyEntityFramework,Version=4.1.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089oroneofitsdependencies.Thelocatedassemblysmanifestdefinitiondoesnotmatchtheassemblyreference.(ExceptionfromHRESULT:0x80131040)
申明:实行以后Web哀求时代,呈现未经处置的非常。请反省仓库跟踪信息,以懂得有关该毛病和代码中招致毛病的出处的具体信息。
非常具体信息:System.IO.FileLoadException:CouldnotloadfileorassemblyEntityFramework,Version=4.1.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089oroneofitsdependencies.Thelocatedassemblysmanifestdefinitiondoesnotmatchtheassemblyreference.(ExceptionfromHRESULT:0x80131040)
源毛病:
实行以后Web哀求时代天生了未经处置的非常。可使用上面的非常仓库跟踪信息断定有关非常缘故原由和产生地位的信息。
程序集加载跟踪:以下信息有助于断定程序集“EntityFramework,Version=4.1.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”未能加载的缘故原由。
WRN:AssemblybindingloggingisturnedOFF.
Toenableassemblybindfailurelogging,settheregistryvalue[HKLMSoftwareMicrosoftFusion!EnableLog](DWORD)to1.
Note:Thereissomeperformancepenaltyassociatedwithassemblybindfailurelogging.
Toturnthisfeatureoff,removetheregistryvalue[HKLMSoftwareMicrosoftFusion!EnableLog]. 成绩怪就怪在我找遍全部项目标代码,也没找到哪一个中央援用了EntityFramework4.1.0.0。
厥后,注重到毛病信息中的提醒——“dToenableassemblybindfailurelogging,settheregistryvalue[HKLMSoftwareMicrosoftFusion!EnableLog](DWORD)to1”,想到是否是能够经由过程日记找出事实哪一个中央援用了EF4.1。进进注册表一看,有HKLMSoftwareMicrosoftFusion,但没有HKLMSoftwareMicrosoftFusion!EnableLog。不知该怎样动手?
在网上搜了搜,在stackoverflow上发明Howtoenableassemblybindfailurelogging(Fusion)in.NET的回覆:Addthefollowingvaluesto
HKEY_LOCAL_MACHINESOFTWAREMicrosoftFusion
Add:
DWORDForceLogsetvalueto1
DWORDLogFailuressetvalueto1
DWORDLogResourceBindssetvalueto1
StringLogPathsetvaluetofolderforlogsie)C:FusionLog 因而在注册表举行了如许的设置:
然后再会见,在页面显现的毛病信息中包括了上面一行:Callingassembly:Devtalk.EF.CodeFirst,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null. 在C:FusionLogDefault64baea7c中也能够找到对应的日记文件EntityFramework,Version=4.1.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089.HTM
因而,水落石出——这个项目中援用了Devtalk.EF.CodeFirst.dll,而它援用了EntityFramework4.1,从而引发这个成绩。
更新:
假如不想天生日记文件,只想在毛病信息中显现“Callingassembly”,只必要在注册表HKEY_LOCAL_MACHINESOFTWAREMicrosoftFusion中将LogResourceBinds的值设置为1(DWORD(32-bit))。
注:修正注册表以后必要重启IIS才干失效
我觉得很重要,一般所说的不重要应该指的是:你学好一种以后再学另一种就很容易了。(因为这样大家可能有一个错觉就是语言不是很重要,只要随便学一种就可以了,其实不是这样的。 |
|