簡體   English   中英

ASP.NET Core TypeLoadException無法從程序集“ System.Web”加載類型“ System.Web.PreApplicationStartMethodAttribute”

[英]ASP.NET Core TypeLoadException Could not load type 'System.Web.PreApplicationStartMethodAttribute' from assembly 'System.Web'

在開發ASP.NET Core MVC項目的過程中,我多次遇到此異常。

POST回MVC控制器時會發生這種情況。 假設ViewModel看起來像這樣:

using System.Web;

namespace MyNamespace 
{
    public class MyViewModel 
    {
        public List<SelectListItem> MyOptions { get; set; }
    }
}

該視圖的標題包含

@model MyNamespace.MyViewModel

如前所述,在POST back(假設View中有一個窗體和一個postback)中,將引發此異常。

處理請求時發生未處理的異常。 TypeLoadException:無法從程序集“ System.Web,版本= 4.0.0.0,區域性=中性,PublicKeyToken = b03f5f7f11d50a3a”中加載類型“ System.Web.PreApplicationStartMethodAttribute”。 System.ModuleHandle.ResolveType(RuntimeModule模塊,int typeToken,IntPtr * typeInstArgs,int typeInstCount,IntPtr * methodInstArgs,int methodInstCount,ObjectHandleOnStack類型)

經過幾個小時的調試,結果證明該解決方案是不正確的using語句。

SelectListItem存在於System.WebMicrosoft.AspNetCore.Mvc.Rendering

但是,從System.Web引用時,.NET Core不支持此元素。

只需將using語句更改為以下內容即可解決此問題:

using Microsoft.AspNetCore.Mvc.Rendering;

其他類型可能會發生這種情況,因此,如果您在ASP.NET Core MVC中遇到奇怪的錯誤,則最好檢查一下System.Web的using語句。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM