今天在新環境部署了一個新開發的應用,運行時報出了“無法加載一個或多個請求的類型。有關更多信息,請檢索 LoaderExceptions 屬性...” 的錯誤。程序拋出的簡單異常信息無法判斷是因為哪個程序集導致的。下面有一個比較好的解決方案是,捕獲更詳細的異常信息,代碼如下:(參考Stack Overflow)
private static void WriteRefleError(ReflectionTypeLoadException ex) { var sb = new StringBuilder(); foreach (var exSub in ex.LoaderExceptions) { sb.AppendLine(exSub.Message); var exFileNotFound = exSub as FileNotFoundException; if (exFileNotFound != null) { if (!string.IsNullOrEmpty(exFileNotFound.FusionLog)) { sb.AppendLine("異常日志:Fusion Log:"); sb.AppendLine(exFileNotFound.FusionLog); } } sb.AppendLine(); } var errorMessage = sb.ToString(); //Write Log info... //Display or log the error based on your application. }
最后通過上面的代碼捕獲了更加詳細的異常信息,是因為新環境的沒有升級MVC版本的原因,升級MVC問題完美解決了。
