Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.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/2/jquery/73.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
Angular Net Core 3.1 ISpaStaticFileProvider发布时出现问题_Angular_Asp.net Core 3.1 - Fatal编程技术网

Angular Net Core 3.1 ISpaStaticFileProvider发布时出现问题

Angular Net Core 3.1 ISpaStaticFileProvider发布时出现问题,angular,asp.net-core-3.1,Angular,Asp.net Core 3.1,我无法运行我的Net Core 3.1网站。正在读取标准文件,其中显示: 未处理的异常。System.InvalidOperationException:若要使用UseSpacStaticFiles,必须首先在服务提供程序中注册ISpaStaticFileProvider,通常是通过调用services.AddSpaStaticFiles 我发布这个项目从来没有遇到过问题,Startup.cs已经有一段时间没有被修改了 也许我忘记了在从2.2迁移到3.1的过程中做一些更改 public ISer

我无法运行我的Net Core 3.1网站。正在读取标准文件,其中显示:

未处理的异常。System.InvalidOperationException:若要使用UseSpacStaticFiles,必须首先在服务提供程序中注册ISpaStaticFileProvider,通常是通过调用services.AddSpaStaticFiles

我发布这个项目从来没有遇到过问题,Startup.cs已经有一段时间没有被修改了

也许我忘记了在从2.2迁移到3.1的过程中做一些更改

public IServiceProvider ConfigureServices(IServiceCollection services)
{
    services.AddAuthorization();
    services.AddControllersWithViews();
    services.AddMvcCore().AddRazorPages().AddRazorRuntimeCompilation();
    services.AddJsReport(new LocalReporting().UseBinary(JsReportBinary.GetBinary()).KillRunningJsReportProcesses().AsUtility().Create());
    services.ConfigureAuthentication(Configuration.GetValue<string>("Secret"));

    services.AddAutoMapper(profileTypes);

    services.ConfigureCors();

    services.AddDbContext<TavoraContext>
        (options => options.UseMySql(Configuration.GetConnectionString("DefaultConnection"),
            mysqlOptions =>
            {
                mysqlOptions.ServerVersion(new Version(8, 0, 16), ServerType.MySql);
                mysqlOptions.MigrationsAssembly("TavoraCore");
            }));

    // Autofac
    var containerBuilder = new ContainerBuilder();
    containerBuilder.RegisterModule<TavoraService.AutofacModule>();
    containerBuilder.Populate(services);
    var container = containerBuilder.Build();

    // In production, the Angular files will be served from this directory
    services.AddSpaStaticFiles(configuration =>
    {
        configuration.RootPath = "ClientApp/dist";
    });

    return new AutofacServiceProvider(container);
}

// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();

        //if (Regex.IsMatch(Configuration["ASPNETCORE_URLS"], @"https?://localhost[:/]")) // is local
        //{
        //    string tsDefinitionsPath = "./ClientApp/src/app/models/";
        //    string tsDefinitionsFullPath = Path.Combine(env.ContentRootPath, tsDefinitionsPath);

        //    app.GenerateTypeScriptInterfaces(tsDefinitionsFullPath);

        //    app.UseCors(policy => policy.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin());
        //}
    }
    else
    {
        app.UseExceptionHandler("/Error");
        app.UseHsts();
    }

    app.UseHttpsRedirection();
    
    app.UseStaticFiles();
    app.UseSpaStaticFiles();
    
    app.UseStaticFiles(new StaticFileOptions()
    {
        FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), @"Resources")),
        RequestPath = new PathString("/Resources")
    });

    app.UseStaticFiles(new StaticFileOptions()
    {
        FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), @"Themes")),
        RequestPath = new PathString("/Themes")
    });

    app.UseRouting();
    app.UseCors();

    app.UseAuthentication();
    app.UseAuthorization();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller}/{action=index}/{id?}");
    });

    app.UseSpa(spa =>
    {
        // To learn more about options for serving an Angular SPA from ASP.NET Core,
        // see https://go.microsoft.com/fwlink/?linkid=864501

        spa.Options.SourcePath = "ClientApp";

        if (env.IsDevelopment())
        {
            spa.UseAngularCliServer(npmScript: "start");
        }
    });
}
公共IServiceProvider配置服务(IServiceCollection服务)
{
services.AddAuthorization();
services.AddControllersWithViews();
services.AddMvcCore().AddRazorPages().AddRazorRuntimeCompilation();
services.AddJsReport(新的LocalReporting().usebarynal(JsReportBinary.GetBinary()).killrunningjsreportprocesss().AsUtility().Create());
services.ConfigureAuthentication(Configuration.GetValue(“Secret”);
服务。AddAutoMapper(ProfileType);
services.ConfigureCors();
services.AddDbContext
(options=>options.UseMySql(Configuration.GetConnectionString(“DefaultConnection”),
mysqlOptions=>
{
ServerVersion(新版本(8,0,16),ServerType.MySql);
mysqlOptions.migrationassembly(“TavoraCore”);
}));
//自动传真
var containerBuilder=新的containerBuilder();
containerBuilder.RegisterModule();
containerBuilder.Populate(服务);
var container=containerBuilder.Build();
//在生产中,角度文件将从此目录中提供
services.AddSpaStaticFiles(配置=>
{
configuration.RootPath=“ClientApp/dist”;
});
返回新的AutofacServiceProvider(容器);
}
//此方法由运行时调用。使用此方法配置HTTP请求管道。
public void配置(IApplicationBuilder应用程序、IWebHostEnvironment环境)
{
if(env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
//if(Regex.IsMatch(配置[“ASPNETCORE_url”],@“https?:///localhost[://]”)是本地的
//{
//字符串tsDefinitionsPath=“/ClientApp/src/app/models/”;
//字符串tsDefinitionsFullPath=Path.Combine(env.ContentRootPath,tsDefinitionsPath);
//app.GenerateTypeScript接口(tsDefinitionsFullPath);
//app.UseCors(policy=>policy.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin());
//}
}
其他的
{
app.UseExceptionHandler(“/Error”);
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseSpaStaticFiles();
app.UseStaticFiles(新的StaticFileOptions()
{
FileProvider=new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(),@“Resources”),
RequestPath=新路径字符串(“/Resources”)
});
app.UseStaticFiles(新的StaticFileOptions()
{
FileProvider=new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(),@“Themes”),
RequestPath=新路径字符串(“/Themes”)
});
app.UseRouting();
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(端点=>
{
endpoints.MapControllerRoute(
名称:“默认”,
模式:“{controller}/{action=index}/{id?}”);
});
app.UseSpa(spa=>
{
//要从ASP.NET Core了解更多有关提供角度SPA的选项,
//看https://go.microsoft.com/fwlink/?linkid=864501
spa.Options.SourcePath=“ClientApp”;
if(env.IsDevelopment())
{
spa.UseAngularCliServer(npmScript:“启动”);
}
});
}

嗯,我希望这个答案有助于某些人

具有Net Core 3.0+的Autofac需要进行一些更改

public IServiceProvider ConfigureServices -> public void ConfigureServices
而且,很明显,删除该行:

return new AutofacServiceProvider(container);

现在网站正在运行

好吧,我希望这个答案有助于某些人

具有Net Core 3.0+的Autofac需要进行一些更改

public IServiceProvider ConfigureServices -> public void ConfigureServices
而且,很明显,删除该行:

return new AutofacServiceProvider(container);
现在网站正在运行