Изменение папки Blazor дает мне сообщение «Не удается найти резервную точку» - PullRequest
1 голос
/ 18 октября 2019

Я создал проект Blazor по умолчанию и хотел иметь часть Web API в том же проекте для целей создания прототипов.

Поэтому я поместил все контроллеры и связанные с ними подпапку Api и материал Blazor вподпапка Blazor.

Структура проекта:

- Api
  - Controllers
    - AController.cs
- Blazor
  - Pages
    - _Host.cshtml
    - Counter.razor
    - Error.razor
    - FetchData.razor
    - Index.razor
  - Data
    - WeatherForecast.cs
    - WeatherForecastService.cs
  - Shared
    - MainLayout.razor
    - NavMenu.razor
  - _Imports.razor
  - App.razor
- appsettings.json
- appsettings.Development.json
- Program.cs
- Startup.cs

Startup.cs

public class Startup
{
    public IConfiguration Configuration { get; }

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

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddHealthChecks();
        services.AddRazorPages();
        services.AddServerSideBlazor();
        services.AddSingleton<WeatherForecastService>();
        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0);
        services.AddSwaggerGen(options =>
        {
            options.SwaggerDoc("v1", new OpenApiInfo
            {
                Title = "An API", 
                Version = "Version Yoohoo"
            });

            var xmlFileName = Assembly.GetExecutingAssembly().GetName().Name + ".xml";
            var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFileName);

            options.IncludeXmlComments(xmlPath);
        });
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Error");
            app.UseHsts();
        }

        app.UseHttpsRedirection();
        app.UseStaticFiles();

        app.UseRouting();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllers();
            endpoints.MapBlazorHub();
            endpoints.MapFallbackToPage("/_Host");
        });

        app.UseSwagger();
        app.UseSwaggerUI(options => options.SwaggerEndpoint("/swagger/v1/swagger.json", "v1"));
    }
}

Но теперь при запуске приложения у меня появляетсяисключение ниже:

Произошло необработанное исключение при обработке запроса. InvalidOperationException: Невозможно найти запасную конечную точку, указанную в значениях маршрута: {page: / _Host, area:}. Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.DynamicPageEndpointMatcherPolicy.ApplyAsync (HttpContext httpContext, CandidateSet кандидатов)

Как это исправить?

1 Ответ

1 голос
/ 25 октября 2019

Вам также необходимо изменить корневой каталог по умолчанию для Razor Pages, попробуйте добавить приведенный ниже код при запуске ConfigureServices

services.Configure<RazorPagesOptions>(options => options.RootDirectory = "/Blazor/Pages");
...