首页 文章

无法在Entity Framework中加载一个或多个请求的类型

提问于
浏览
4

Disclaimer :我已经看到了确切的问题,但没有看到任何可以解决我的问题的答案 .
Server :安装了带有ASP.NET 4.0 Framework(客户端配置文件和扩展)的Windows Server 2008 .
Scenario :这不会发生在我的开发服务器上,它只发生在我的 生产环境 服务器上,所以我的调试功能非常有限 . 问题:当我点击使用EntityDataSource加载数据的页面时,我的elmah给了我这个 .

System.Reflection.ReflectionTypeLoadException无法加载一个或多个请求的类型 . 检索LoaderExceptions属性以获取更多信息 .

没有非常有用的Stack Trace . 所以我在 Global.asax 中使用了 Application_Error 这样的事件来获取有关此错误的更多详细信息 .

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()));

}

现在我将错误记录为,

System.Exception无法加载文件或程序集'System.Web.Mvc,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一 . 该系统找不到指定的文件 . 来源:/顾问/搜索浏览器:Mozilla / 5.0(Windows NT 6.1; rv:5.0)Gecko / 20100101 Firefox / 5.0 IP:我的IP用户ID:user1020错误:http://mysite.com/search错误消息:无法加载一个或多个请求的类型 . 检索LoaderExceptions属性以获取更多信息 . 堆栈跟踪:位于System.Reflection.RuntimeModule.GetTypes()的System.Reflection.RuntimeModule.GetTypes(RuntimeModule模块),System.Reflection.Assembly.GetTypes(),位于System.Data.Metadata.Edm.ObjectItemConventionAssemblyLoader.LoadTypesFromAssembly()at System.Data.Metadata.Edm.AssemblyCache.LoadAssembly上的System.Data.Metadata.Edm.AssemblyCache.LoadAssembly(Assembly assembly,Boolean loadReferencedAssemblies,ObjectItemLoadingSessionData loadingData)中的System.Data.Metadata.Edm.ObjectItemAssemblyLoader.Load() ,布局loadReferencedAssemblies,KnownAssembliesSet knownAssemblies,EdmItemCollection edmItemCollection,Action1 logLoadMessage,Object&loaderCookie,Dictionary2&typesInLoading,List`1&errors)....(跟踪继续)

请看第一行 .

System.Web.Mvc, Version=3.0.0.0 在ASP.NET场景中做什么?
我已经要求我的服务器人员安装MVC3 . 但这真的没有任何意义 .
任何帮助/指针将不胜感激 . 我用asp.net很长一段时间没有被这个困惑:(

为什么会出现此错误以及什么是好的解决方案/解决方法?

1 回答

  • 3

    我遇到了第三方参考需要MVC工作的问题,想到了DotNetOpenAuth .

相关问题