System.IO.FileLoadException: 'Loading this assembly would produce a different grant set from other instances. (Exception from HRESULT: 0x80131401)'

System.IO.FileLoadException: 'Loading this assembly would produce a different grant set from other instances. (Exception from HRESULT: 0x80131401)'

当 运行 我的 C# MVC 解决方案针对 .Net Framework 4.7 在 Visual Studio 2019 V16.11.13.

这个错误发生在我的 Startup.cs 上(请参阅带有 ** ** 的代码段,这是发生错误的地方):

public void Configuration(IAppBuilder app)
    {
        app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

        bootstrapper.Initialize(CreateKernel);

        HttpConfiguration config = new HttpConfiguration();

        config.DependencyResolver = new NinjectResolver(bootstrapper.Kernel);

        config.MapHttpAttributeRoutes();

        config.EnableSwagger(c =>
        {
            c.Schemes(new[] { "https" });
            c.SingleApiVersion("v1", "xxx");
            c.PrettyPrint();
        }).EnableSwaggerUi(c => { c.SupportedSubmitMethods(); });

        ConfigureAuth(app);

        app.UseWebApi(config);
    }

    private static IKernel CreateKernel()
    {
        **var kernel = new StandardKernel(modules);**
        try
        {
            kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
            kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();

            RegisterServices(kernel);
            return kernel;
        }
        catch
        {
            kernel.Dispose();
            throw;
        }
    }

我已经尝试了在网络上找到的所有解决方案,但仍然没有得到解决方案,包括在我的注册表中添加值为 1 的 DWord LoaderOptimization。

尝试 web.config 中的以下修复:

<system.web>
...
<trust level="Full" />
</system.web>

或设置legacyCasModel="false"

如果不是问题,则有一个类似的问题可能会导致此问题,并且现已提供支持的修补程序,您可以参考 it 了解更多信息。