2011-07-04 57 views
4

免責聲明:我已經看到確切的問題,但沒有看到任何可以解決我的問題的答案。
服務器:安裝了帶有ASP.NET 4.0 Framework(客戶端配置文件和擴展)的Windows Server 2008。
場景:這不會發生在我的開發服務器上,它只發生在我的生產服務器上,所以我的調試功能非常有限。 問題:當我點擊使用EntityDataSource加載數據的頁面時,我的elmah給了我這個。無法在實體框架中加載一個或多個請求的類型

System.Reflection.ReflectionTypeLoadException 無法加載的一個或多個 的請求的類型。檢索 LoaderExceptions屬性獲取更多 信息。

沒有太大的幫助Stack Trace too。所以我使用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, 版本= 3.0.0.0,文化= , PublicKeyToken = 31bf3856ad364e35'或 其依賴項之一。系統 找不到指定的文件。 來源: /顧問/搜索
瀏覽器:的Mozilla/5.0 (Windows NT的6.1; RV:5.0) 的Gecko/20100101火狐/ 5.0
IP:我的IP
用戶名: user1020



中的錯誤:
http://mysite.com/search
錯誤消息:無法 加載一個或多個請求的 類型。檢索LoaderExceptions 屬性以獲取更多信息。
堆棧跟蹤:
在 System.Reflection.RuntimeModule.GetTypes(RuntimeModule 模塊)在 System.Reflection.RuntimeModule.GetTypes() 在 System.Reflection.Assembly.GetTypes() 在 系統。 Data.Metadata.Edm.ObjectItemConventionAssemblyLoader.LoadTypesFromAssembly() 在 System.Data.Metadata.Edm.ObjectItemAssemblyLoader.Load() 在 System.Data.Metadata.Edm.AssemblyCache.LoadAssembly(大會 組件,布爾 loadReferencedAssemblies, ObjectItemLoadingSessionData loadingData) System.Data.Metadata.Edm.AssemblyCache。LoadAssembly(大會 組裝,布爾 loadReferencedAssemblies, KnownAssembliesSet knownAssemblies, EdmItemCollection edmItemCollection, 行動 typesInLoading,List`1 &錯誤)在......(跟蹤繼續)

請看第一行。

什麼是System.Web.Mvc, Version=3.0.0.0在ASP.NET場景中做什麼?
我問我的服務器人安裝MVC3。但這真的沒有任何意義。
任何幫助/指針將不勝感激。我沒有被這個莫名其妙的長時間用asp.net :(

爲什麼這個錯誤發生,這將是一個很好的解決方案/解決方法嗎?

+0

您是否檢查過web.config?可能有一些對此dll的引用 –

+0

@adrian:絕對沒有adrian。:)抱歉,延遲迴復。我睡了 – naveen

回答

3

我曾與第三方引用需要MVC的工作問題, DotNetOpenAuth浮現在腦海中

+2

添加引用到MVC3解決了這個問題。仍然不知道爲什麼。 – naveen

相關問題