Asp.net 无法在实体框架中加载一个或多个请求的类型
免责声明:我已经看到了确切的问题,但没有看到任何可以解决我问题的答案。Asp.net 无法在实体框架中加载一个或多个请求的类型,asp.net,entity-framework,webforms,Asp.net,Entity Framework,Webforms,免责声明:我已经看到了确切的问题,但没有看到任何可以解决我问题的答案。 服务器:安装了ASP.NET 4.0框架(客户端配置文件和扩展版)的Windows Server 2008。 场景:这不会发生在我的开发服务器上,它只发生在我的生产服务器上,因此我的调试能力非常有限。 问题:当我点击使用EntityDataSource加载数据的页面时,我的elmah给了我这个 System.Reflection.ReflectionTypeLoadException 无法加载一个或多个 请求的类型。取回 L
服务器:安装了ASP.NET 4.0框架(客户端配置文件和扩展版)的Windows Server 2008。
场景:这不会发生在我的开发服务器上,它只发生在我的生产服务器上,因此我的调试能力非常有限。 问题:当我点击使用EntityDataSource加载数据的页面时,我的elmah给了我这个 System.Reflection.ReflectionTypeLoadException 无法加载一个或多个 请求的类型。取回 LoaderExceptions属性了解更多信息 信息 也没有非常有用的堆栈跟踪。因此,我使用事件
Application\u Error
insideGlobal.asax
来获取关于此类错误的更多详细信息
void Application_Error(object sender, EventArgs e)
{
// Code that runs when an unhandled error occurs
StringBuilder sb = new StringBuilder();
Exception objErr = default(Exception);
objErr = Server.GetLastError().GetBaseException();
Server.ClearError();
if (objErr is ReflectionTypeLoadException) {
ReflectionTypeLoadException reflerror = default(ReflectionTypeLoadException);
reflerror = (ReflectionTypeLoadException)objErr;
foreach (var ex in reflerror.LoaderExceptions) {
sb.AppendLine(ex.Message);
}
}
sb.AppendLine("<b>Source:</b>" + Request.RawUrl);
sb.AppendLine("<br><b>Browser:</b>" + Request.UserAgent);
sb.AppendLine("<br><b>IP:</b>" + Request.UserHostAddress.ToString());
sb.AppendLine("<br><b>UserID:</b>" + User.Identity.Name);
sb.AppendLine("<hr><br><b>Error in: </b>" + Request.Url.ToString());
sb.AppendLine("<br><b>Error Message: </b>" + objErr.Message.ToString());
sb.AppendLine("<br><b>Stack Trace: </b><br>" + objErr.StackTrace.ToString());
Elmah.ErrorSignal.FromCurrentContext().Raise(new Exception(sb.ToString()));
}
void应用程序\u错误(对象发送方,事件参数e)
{
//发生未处理错误时运行的代码
StringBuilder sb=新的StringBuilder();
异常objErr=默认值(异常);
objErr=Server.GetLastError().GetBaseException();
ClearError();
if(objErr是ReflectionTypeLoadException){
ReflectionTypeLoadException reflerror=默认值(ReflectionTypeLoadException);
reflerror=(ReflectionTypeLoadException)objErr;
foreach(reflerror.LoaderExceptions中的var ex){
某人追加电话(例如留言);
}
}
sb.AppendLine(“来源:+Request.RawUrl”);
sb.AppendLine(
浏览器:“+Request.UserAgent”);
sb.AppendLine(
IP:+Request.UserHostAddress.ToString());
sb.AppendLine(
UserID:+User.Identity.Name);
sb.AppendLine(“+Request.Url.ToString()”中的错误);
sb.AppendLine(
错误消息:“+objErr.Message.ToString());
sb.AppendLine(“
堆栈跟踪:
”+objErr.StackTrace.ToString());
Elmah.ErrorSignal.FromCurrentContext().Raise(新异常(sb.ToString()));
}
现在我将错误记录为
系统异常无法加载文件 或程序集'System.Web.Mvc, 版本=3.0.0.0,区域性=中性, PublicKeyToken=31bf3856ad364e35'或 它的一个依赖项。系统 找不到指定的文件。 来源:/顾问/搜索
浏览器:Mozilla/5.0 (Windows NT 6.1;rv:5.0) Gecko/20100101 Firefox/5.0
我的IP
UserID:user1020
以下错误: http://mysite.com/search
错误消息:无法删除 加载一个或多个请求的 类型。检索LoaderExceptions 属性以获取更多信息。
堆栈跟踪:
位于 System.Reflection.RuntimeModule.GetTypes(RuntimeModule 模块)在 System.Reflection.RuntimeModule.GetTypes() 在 System.Reflection.Assembly.GetTypes() 在 System.Data.Metadata.Edm.ObjectItemConventionAssemblyLoader.LoadTypesFromAssembly() 在 System.Data.Metadata.Edm.ObjectItemAssemblyLoader.Load() 在 System.Data.Metadata.Edm.AssemblyCache.LoadAssembly(程序集 布尔集合 加载引用程序集, ObjectItemLoadingSessionData 加载数据)在 System.Data.Metadata.Edm.AssemblyCache.LoadAssembly(程序集 布尔集合 加载引用程序集, 认识认识认识认识认识认识认识, EdmItemCollection EdmItemCollection, 操作
1日志加载消息,对象&
loaderCookie,字典
2&
在…处键入加载,列出“1和错误”。。。。(追踪还在继续)
请看第一行
System.Web.Mvc,Version=3.0.0.0
在ASP.NET场景中做什么?我已经要求我的服务器人员安装MVC3。但这真的没有任何意义。
如有任何帮助/建议,将不胜感激。我很长时间没有对asp.net感到如此困惑:(
为什么会发生此错误以及什么是好的解决方案/解决方法?我对需要MVC才能工作的第三方引用有问题,我想到了DotNetOpenAuth。您是否检查了web.config?可能有一些引用dll@adrian:绝对没有,阿德里安。:)很抱歉延迟回复。我通过添加对MVC3的引用解决了这个问题。还是不知道为什么。