ASP.NET网页设计用Fusion Log诊断"Could not load file or assembly"成绩仓酷云
也不知道,我同学昨天说数据挖掘很好。明天碰到一个奇异成绩,有一个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(DWORD)to1.
Note:Thereissomeperformancepenaltyassociatedwithassemblybindfailurelogging.
Toturnthisfeatureoff,removetheregistryvalue.成绩怪就怪在我找遍全部项目标代码,也没找到哪一个中央援用了EntityFramework4.1.0.0。
厥后,注重到毛病信息中的提醒——“dToenableassemblybindfailurelogging,settheregistryvalue(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才干失效
我觉得很重要,一般所说的不重要应该指的是:你学好一种以后再学另一种就很容易了。(因为这样大家可能有一个错觉就是语言不是很重要,只要随便学一种就可以了,其实不是这样的。 微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。 Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境! 在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗? 由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。 JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。 ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。 平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。 可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。 虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。 可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。 目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案. ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。
页:
[1]