Эта локальная страница не может быть найдена, возможна проблема конфигурации - PullRequest
0 голосов
/ 21 октября 2019

Независимо от того, какую страницу я пытаюсь загрузить после запуска моего API, я получаю ошибку 404 «Эта страница локального хоста не может быть найдена», даже если я пытаюсь запустить метод, который возвращает только «Ok». Я думаю, что проблема может заключаться в том, как я настроил свое приложение. Это или я допустил некоторые ошибки при маршрутизации.

Я пытался возиться с конфигурацией приложения, просматривая примеры, но в большинстве из них установлены дополнительные пакеты NuGet. Я попытался использовать метод .AddControllers() в методе ConfigureServices, что привело к синтаксической ошибке, я попытался использовать .UseRouting() в своей функции Configure, и снова я столкнулся с синтаксической ошибкой.

Класс запуска:

public void ConfigureServices(IServiceCollection services)
        {
            services.AddScoped<IRepositoryWrapper, RepositoryWrapper>();
            services.AddDbContext<ArtGalleriesContext>(
                options=>options.UseSqlServer(
                    Configuration.GetConnectionString("Database")));
            //services.AddScoped<IArtItemRepository1, ArtItemRepository1>();
            services.AddMvc();
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });

Класс программы:

public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>();

Я пытаюсь вызвать эту функцию

 [Route("api/[controller]")]
    [ApiController]
    public class AdminController : ControllerBase
 [HttpGet("/user/add/{num1}/")]
        public IActionResult SumActionResult(int num1)
        {
            return Ok(num1 );
        }

следующим образом: api/ admin / users / add / 1 и отобразить 1 на моей веб-странице для подтверждения функциональности. Вместо этого я получаю сообщение об ошибке «Эту локальную страницу не удается найти».

Ответы [ 2 ]

0 голосов
/ 21 октября 2019

Ваша проблема здесь.

[HttpGet("/user/add/{num1}/")]

Из-за предыдущего слеша (/) маршрут просто /user/add/{num1}, не /api/admin/user/add/{num1}. Удалить предыдущую косую черту:

[HttpGet("user/add/{num1}/")]
0 голосов
/ 21 октября 2019

Вам нужно что-то вроде этого

 [HttpGet("user/add/{num1}")]
 public IActionResult SumActionResult(int num1)
 {
     return Ok(num1 );
 }

Также обратите внимание, что в маршруте у вас есть пользователь, а не 'пользователи'. Для получения более подробной информации вы можете прочитать https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing?view=aspnetcore-2.2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...