加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 当ASP.NET 5(vNext)无法重定向绑定时,我该怎么办

发布时间:2020-12-16 09:55:32 所属栏目:asp.Net 来源:网络整理
导读:我刚刚开始使用MVC 6.我安装了VS 2015并使用默认的ASP.NET 5预览MVC Web应用程序模板,在本地IIS下运行正常. 然后我尝试在these instructions之后用StructureMap切换出Default DI容器(注意它是一篇最近的文章).唯一的问题是我必须找出自己导入的名称空间(因为
我刚刚开始使用MVC 6.我安装了VS 2015并使用默认的ASP.NET 5预览MVC Web应用程序模板,在本地IIS下运行正常.

然后我尝试在these instructions之后用StructureMap切换出Default DI容器(注意它是一篇最近的文章).唯一的问题是我必须找出自己导入的名称空间(因为作者忽略了包含它们),这就是我所包含的内容.

我将StructureMapRegistration类和所有相关的类放在一个文件中,这里是使用.

using Microsoft.Framework.DependencyInjection;
using StructureMap;
using StructureMap.Configuration.DSL.Expressions;

我将以下用法添加到Startup.cs文件中.

using StructureMap;
using StructureMap.Graph;
using System.Reflection;

我对Startup.cs文件进行了以下编辑.

// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
    // Add Entity Framework services to the services container.
    services.AddEntityFramework()
        .AddSqlServer()
        .AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));

    // Add Identity services to the services container.
    services.AddIdentity<ApplicationUser,IdentityRole>()
        .AddEntityFrameworkStores<ApplicationDbContext>()
        .AddDefaultTokenProviders();

    // Configure the options for the authentication middleware.
    // You can add options for Google,Twitter and other middleware as shown below.
    // For more information see http://go.microsoft.com/fwlink/?LinkID=532715
    services.Configure<FacebookAuthenticationOptions>(options =>
    {
        options.AppId = Configuration["Authentication:Facebook:AppId"];
        options.AppSecret = Configuration["Authentication:Facebook:AppSecret"];
    });

    services.Configure<MicrosoftAccountAuthenticationOptions>(options =>
    {
        options.ClientId = Configuration["Authentication:MicrosoftAccount:ClientId"];
        options.ClientSecret = Configuration["Authentication:MicrosoftAccount:ClientSecret"];
    });

    // Add MVC services to the services container.
    services.AddMvc();

    //// Uncomment the following line to add Web API services which makes it easier to port Web API 2 controllers.
    //// You will also need to add the Microsoft.AspNet.Mvc.WebApiCompatShim package to the 'dependencies' section of project.json.
    //// services.AddWebApiConventions();

    //// Register application services.
    //services.AddTransient<IEmailSender,AuthMessageSender>();
    //services.AddTransient<ISmsSender,AuthMessageSender>();

    var container = new Container();
    container.Configure(x =>
    {
        x.Scan(scanning =>
        {
            scanning.Assembly(Assembly.GetExecutingAssembly());
            scanning.TheCallingAssembly();
            scanning.WithDefaultConventions();
        });

        //x.AddRegistry<WebsiteRegistry>();
    });

    // Our framework extension point
    container.Populate(services);
}

Literally,the only things I have changed from the default template are the above code changes and installing StructureMap 3.1.6.186.

using语句会抑制所有设计时编译错误,但是当我构建时,我会收到其他几个错误.

Error CS0012 The type ‘Action<>’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘mscorlib,Version=2.0.5.0,Culture=neutral,PublicKeyToken=7cec85d7bea7798e,Retargetable=Yes’. TestDI3.DNX Core 5.0 f:UsersShaddocumentsvisual studio 2015ProjectsTestDI3srcTestDI3ServicesStructureMapRegistration.cs 32

Error CS0012 The type ‘IDisposable’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘mscorlib,Retargetable=Yes’. TestDI3.DNX Core 5.0 f:UsersShaddocumentsvisual studio 2015ProjectsTestDI3srcTestDI3ServicesStructureMapRegistration.cs 32

Error CS0012 The type ‘Func<,>’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘mscorlib,Retargetable=Yes’. TestDI3.DNX Core 5.0 f:UsersShaddocumentsvisual studio 2015ProjectsTestDI3srcTestDI3ServicesStructureMapRegistration.cs 59

Error CS0012 The type ‘Object’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘mscorlib,Retargetable=Yes’. TestDI3.DNX Core 5.0 f:UsersShaddocumentsvisual studio 2015ProjectsTestDI3srcTestDI3ServicesStructureMapRegistration.cs 59

Error CS0012 The type ‘Type’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘mscorlib,Retargetable=Yes’. TestDI3.DNX Core 5.0 f:UsersShaddocumentsvisual studio 2015ProjectsTestDI3srcTestDI3ServicesStructureMapRegistration.cs 63

Error CS0012 The type ‘Expression<>’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘System.Core,Retargetable=Yes’. TestDI3.DNX Core 5.0 f:UsersShaddocumentsvisual studio 2015ProjectsTestDI3srcTestDI3ServicesStructureMapRegistration.cs 63

Error CS0012 The type ‘Object’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘mscorlib,Retargetable=Yes’. TestDI3.DNX Core 5.0 f:UsersShaddocumentsvisual studio 2015ProjectsTestDI3srcTestDI3ServicesStructureMapRegistration.cs 63

Error CS0012 The type ‘Type’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘mscorlib,Retargetable=Yes’. TestDI3.DNX Core 5.0 f:UsersShaddocumentsvisual studio 2015ProjectsTestDI3srcTestDI3ServicesStructureMapRegistration.cs 67

Error CS0012 The type ‘Expression<>’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘System.Core,Retargetable=Yes’. TestDI3.DNX Core 5.0 f:UsersShaddocumentsvisual studio 2015ProjectsTestDI3srcTestDI3ServicesStructureMapRegistration.cs 67

Error CS0012 The type ‘Object’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘mscorlib,Retargetable=Yes’. TestDI3.DNX Core 5.0 f:UsersShaddocumentsvisual studio 2015ProjectsTestDI3srcTestDI3ServicesStructureMapRegistration.cs 67

Error CS0012 The type ‘Type’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘mscorlib,Retargetable=Yes’. TestDI3.DNX Core 5.0 f:UsersShaddocumentsvisual studio 2015ProjectsTestDI3srcTestDI3ServicesStructureMapRegistration.cs 89

Error CS0012 The type ‘IDisposable’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘mscorlib,Retargetable=Yes’. TestDI3.DNX Core 5.0 f:UsersShaddocumentsvisual studio 2015ProjectsTestDI3srcTestDI3ServicesStructureMapRegistration.cs 89

Error CS0411 The type arguments for method ‘IContainer.GetInstance(string)’ cannot be inferred from the usage. Try specifying the type arguments explicitly. TestDI3.DNX Core 5.0 f:UsersShaddocumentsvisual studio 2015ProjectsTestDI3srcTestDI3ServicesStructureMapRegistration.cs 89

Error CS0012 The type ‘IDisposable’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘mscorlib,Retargetable=Yes’. TestDI3.DNX Core 5.0 f:UsersShaddocumentsvisual studio 2015ProjectsTestDI3srcTestDI3ServicesStructureMapRegistration.cs 107

Error CS0012 The type ‘IDisposable’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘mscorlib,Retargetable=Yes’. TestDI3.DNX Core 5.0 f:UsersShaddocumentsvisual studio 2015ProjectsTestDI3srcTestDI3ServicesStructureMapRegistration.cs 120

Error CS1061 ‘IContainer’ does not contain a definition for ‘Dispose’ and no extension method ‘Dispose’ accepting a first argument of type ‘IContainer’ could be found (are you missing a using directive or an assembly reference?) TestDI3.DNX Core 5.0 f:UsersShaddocumentsvisual studio 2015ProjectsTestDI3srcTestDI3ServicesStructureMapRegistration.cs 120

Error CS0012 The type ‘Action<>’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘mscorlib,Retargetable=Yes’. TestDI3.DNX Core 5.0 f:UsersShaddocumentsvisual studio 2015ProjectsTestDI3srcTestDI3Startup.cs 94

Error CS0012 The type ‘Object’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘mscorlib,Retargetable=Yes’. TestDI3.DNX Core 5.0 f:UsersShaddocumentsvisual studio 2015ProjectsTestDI3srcTestDI3Startup.cs 107

Error CS0012 The type ‘IDisposable’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘mscorlib,Retargetable=Yes’. TestDI3.DNX Core 5.0 f:UsersShaddocumentsvisual studio 2015ProjectsTestDI3srcTestDI3Startup.cs 107

Error CS0012 The type ‘Object’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘mscorlib,Retargetable=Yes’. TestDI3.DNX Core 5.0 f:UsersShaddocumentsvisual studio 2015ProjectsTestDI3srcTestDI3Startup.cs 107

错误表明问题出在哪里 – 我需要对mscorlib 2.0.5.0的引用.但我已经在项目中引用了mscorlib 4.0.0.0.

在ASP.NET中的这一点<如图5所示,下一步通常是将一些绑定重定向添加到< bindingRedirect> web.config文件的一部分.但是,在ASP.NET 5中搜索如何执行此操作后,我遇到了this answer,这表明绑定重定向应该是“完全自动的”.

这是一个错误,还是我错过了配置中的一些步骤导致此错误?

组态

DNX 1.0.0-beta5

.NET Framework

x86

IIS Express

project.json

{
    "webroot": "wwwroot","userSecretsId": "aspnet5-TestDI3-1665343b-5aa5-4d08-8596-a1a536223a19","version": "1.0.0-*","dependencies": {
        "EntityFramework.SqlServer": "7.0.0-beta5","EntityFramework.Commands": "7.0.0-beta5","Microsoft.AspNet.Mvc": "6.0.0-beta5","Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta5","Microsoft.AspNet.Authentication.Cookies": "1.0.0-beta5","Microsoft.AspNet.Authentication.Facebook": "1.0.0-beta5","Microsoft.AspNet.Authentication.Google": "1.0.0-beta5","Microsoft.AspNet.Authentication.MicrosoftAccount": "1.0.0-beta5","Microsoft.AspNet.Authentication.Twitter": "1.0.0-beta5","Microsoft.AspNet.Diagnostics": "1.0.0-beta5","Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta5","Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta5","Microsoft.AspNet.Server.IIS": "1.0.0-beta5","Microsoft.AspNet.Server.WebListener": "1.0.0-beta5","Microsoft.AspNet.StaticFiles": "1.0.0-beta5","Microsoft.AspNet.Tooling.Razor": "1.0.0-beta5","Microsoft.Framework.Configuration.Abstractions": "1.0.0-beta5","Microsoft.Framework.Configuration.Json": "1.0.0-beta5","Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta5","Microsoft.Framework.Logging": "1.0.0-beta5","Microsoft.Framework.Logging.Console": "1.0.0-beta5","Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta5","structuremap": "3.1.6.186"
    },"commands": {
        "web": "Microsoft.AspNet.Hosting --config hosting.ini","ef": "EntityFramework.Commands"
    },"frameworks": {
        "dnx451": { },"dnxcore50": { }
    },"exclude": [
        "wwwroot","node_modules","bower_components"
    ],"publishExclude": [
        "node_modules","bower_components","**.xproj","**.user","**.vspscc"
    ],"scripts": {
        "prepublish": [ "npm install","bower install","gulp clean","gulp min" ]
    }
}

解决方法

感谢opiants,问题似乎与dnxcore50框架包含在项目中的事实有关.

"frameworks": {
    "dnx451": { },"dnxcore50": { }
}

删除它解决了这个问题.

"frameworks": {
    "dnx451": { }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读