Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从.NET Core 1更新到.NET Core 2时app.UseMvc路由异常_C#_Asp.net Core_Asp.net Core 2.0_Asp.net Core 1.0 - Fatal编程技术网

C# 从.NET Core 1更新到.NET Core 2时app.UseMvc路由异常

C# 从.NET Core 1更新到.NET Core 2时app.UseMvc路由异常,c#,asp.net-core,asp.net-core-2.0,asp.net-core-1.0,C#,Asp.net Core,Asp.net Core 2.0,Asp.net Core 1.0,我正在将我的项目从.NET Core 1升级到.NET Core 2 <PackageReference Include="Microsoft.AspNetCore" Version="2.0.2" /> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.3" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.Vi

我正在将我的项目从.NET Core 1升级到.NET Core 2

<PackageReference Include="Microsoft.AspNetCore" Version="2.0.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.3" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="2.0.3" PrivateAssets="All" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.0.2" />

<PackageReference Include="Microsoft.SqlServer.Types" Version="11.0.2" />
<PackageReference Include="FluentValidation.AspNetCore" Version="7.5.2" />
遵循官方文档--我编辑了csproj以包含以下包

<PackageReference Include="Microsoft.AspNetCore" Version="2.0.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.3" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="2.0.3" PrivateAssets="All" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.0.2" />

<PackageReference Include="Microsoft.SqlServer.Types" Version="11.0.2" />
<PackageReference Include="FluentValidation.AspNetCore" Version="7.5.2" />

<PackageReference Include="Microsoft.AspNetCore" Version="2.0.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.3" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="2.0.3" PrivateAssets="All" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.0.2" />

<PackageReference Include="Microsoft.SqlServer.Types" Version="11.0.2" />
<PackageReference Include="FluentValidation.AspNetCore" Version="7.5.2" />
并将Startup类更改为此

<PackageReference Include="Microsoft.AspNetCore" Version="2.0.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.3" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="2.0.3" PrivateAssets="All" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.0.2" />

<PackageReference Include="Microsoft.SqlServer.Types" Version="11.0.2" />
<PackageReference Include="FluentValidation.AspNetCore" Version="7.5.2" />
    public IConfiguration Configuration { get; }

    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
        // Load Configuration from appsettings.json
        services.Configure<IdentityServerSettings>(Configuration.GetSection("IdentityServerSettings"));
        services.AddOptions();

        var identityServerOptions = serviceProvider.GetService<IOptions<IdentityServerSettings>>().Value;
        services.AddMvc(o =>
        {
            if (identityServerOptions.EnableSSL)
                o.Filters.Add(new RequireHttpsAttribute());
        });

        services.AddAuthentication("Bearer").AddIdentityServerAuthentication(opt =>
            {
                opt.Authority = identityServerOptions.Authority;
                opt.RequireHttpsMetadata = identityServerOptions.EnableSSL;
                opt.ApiName = identityServerOptions.ApiName;
            });
    }


    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        #region Identity Server Config
        // Setup Identity Server Options for this API - 
        app.UseAuthentication();

        #endregion

        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
            app.UseBrowserLink();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
        }

        app.UseStaticFiles();

        // tried this 
        app.UseMvc();

        // and this
        //app.UseMvcWithDefaultRoute(); 

        // and this
        //app.UseMvc(routes =>
        //{
        //    routes.MapRoute(name: "default", template: "{controller=Home}/{action=Index}/{id?}");
        //});
    }
但每当我运行项目时,我都会得到一个异常:“序列包含多个匹配元素”

<PackageReference Include="Microsoft.AspNetCore" Version="2.0.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.3" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="2.0.3" PrivateAssets="All" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.0.2" />

<PackageReference Include="Microsoft.SqlServer.Types" Version="11.0.2" />
<PackageReference Include="FluentValidation.AspNetCore" Version="7.5.2" />

好的,这与.NET核心升级无关。但这是我如何设置Fluent验证的问题

<PackageReference Include="Microsoft.AspNetCore" Version="2.0.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.3" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="2.0.3" PrivateAssets="All" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.0.2" />

<PackageReference Include="Microsoft.SqlServer.Types" Version="11.0.2" />
<PackageReference Include="FluentValidation.AspNetCore" Version="7.5.2" />
在升级期间,我还将
FluentValidation.AspNetCore
从7.2.1升级到7.5.*。这导致了异常

<PackageReference Include="Microsoft.AspNetCore" Version="2.0.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.3" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="2.0.3" PrivateAssets="All" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.0.2" />

<PackageReference Include="Microsoft.SqlServer.Types" Version="11.0.2" />
<PackageReference Include="FluentValidation.AspNetCore" Version="7.5.2" />
降级至7.2.1后,解决方案运行良好

<PackageReference Include="Microsoft.AspNetCore" Version="2.0.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.3" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="2.0.3" PrivateAssets="All" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.0.2" />

<PackageReference Include="Microsoft.SqlServer.Types" Version="11.0.2" />
<PackageReference Include="FluentValidation.AspNetCore" Version="7.5.2" />

当我找到一个解决方案让它与
FluentValidation.AspNetCore
v7.5一起工作时,我会发布更多关于这个问题的信息。

我按照文档进行了升级,从
AspNetCore 1
升级到
AspNetCore。所有的
v2.0.7也都升级了(我知道v2.0.8刚刚推出,但Azure还不支持,所以我还在坚持升级)。我使用
FluentValidation
v7.5.2编译时没有问题

<PackageReference Include="Microsoft.AspNetCore" Version="2.0.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.3" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="2.0.3" PrivateAssets="All" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.0.2" />

<PackageReference Include="Microsoft.SqlServer.Types" Version="11.0.2" />
<PackageReference Include="FluentValidation.AspNetCore" Version="7.5.2" />
只是想和大家分享我是怎么做到的

<PackageReference Include="Microsoft.AspNetCore" Version="2.0.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.3" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="2.0.3" PrivateAssets="All" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.0.2" />

<PackageReference Include="Microsoft.SqlServer.Types" Version="11.0.2" />
<PackageReference Include="FluentValidation.AspNetCore" Version="7.5.2" />
创建一个扩展方法