Ошибка Путь в 'value' должен начинаться с '/' в ASP.NET Core 2 при развертывании приложения - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь развернуть приложение asp net core 2, все вроде бы нормально, я использую опцию «Развернуть файлы» в VS2017, по пути к папке inetpub \ wwwroot \ App1 добавляю приложение. Я просматриваю путь http://localhost:8088/App1/Home/Index/ тогда я вижу:

ArgumentException: путь в 'value' должен начинаться с '/'. Nombre del parámetro: стоимость Microsoft.AspNetCore.Http.PathString..ctor (строковое значение) Microsoft.AspNetCore.Builder.ExceptionHandlerExtensions.UseExceptionHandler (IApplicationBuilder приложение, строка errorHandlingPath) OCIndicadoresOperativoClientes.Startup.Configure (IApplicationBuilder приложение, IHostingEnvironment env) в Startup.cs System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () Microsoft.AspNetCore.Hosting.ConventionBasedStartup.Configure (IApplicationBuilder приложение) Microsoft.AspNetCore.Server.IISIntegration.IISSetupFilter + <> c__DisplayClass3_0.b__0 (IApplicationBuilder приложение) Microsoft.AspNetCore.Hosting.Internal.AutoRequestServicesStartupFilter + <> c__DisplayClass0_0.b__0 (IApplicationBuilder строитель) Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication ()

ниже вы можете увидеть код Startup.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.SpaServices.Webpack;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;

namespace App1
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDistributedMemoryCache();
            services.AddMvc().AddSessionStateTempDataProvider();
            services.AddSession(options =>
            {
                options.IdleTimeout = TimeSpan.FromMinutes(25);
                options.Cookie.HttpOnly = true;
            });

            services.AddAuthenticationCore();
        }

        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            app.UseExceptionHandler("App1/Home/Error");

            app.UseStaticFiles();

            app.UseSession();

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

                routes.MapRoute(
                    name: "Shippers",
                    template: "{controller=ControllerB}/{action=Index}/{id?}");

                routes.MapSpaFallbackRoute(
                    name: "spa-fallback",
                    defaults: new { controller = "Home", action = "Index" });

                routes.MapSpaFallbackRoute(
                    name: "ControllerB",
                    defaults: new { controller = "ControllerB", action = "Index" });
            });
        }
    }
}

также, я включу детали webconfig:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath=".\App1.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>

Вы видите какую-либо ошибку? Буду признателен за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

У меня тоже была эта проблема. Это происходило потому, что ожидается, что путь обработки исключений будет начинаться с "/"

Ошибка была:

ArgumentException: путь в 'value' должен начинаться с '/'. Nombre del parámetro: значение Microsoft.AspNetCore.Http.PathString..ctor (строковое значение) Microsoft.AspNetCore.Builder.ExceptionHandlerExtensions.UseExceptionHandler (приложение IApplicationBuilder, строка errorHandlingPath)

Исправлено заменой

  app.UseExceptionHandler("Home/Error");

с

  app.UseExceptionHandler("/Home/Error");

Также вы можете попробовать развернуть с помощью

  app.UseDeveloperExceptionPage();

и найдите ошибку, если есть.

0 голосов
/ 31 октября 2018

На основании трассировки стека произошла ошибка в этой строке:

app.UseExceptionHandler("App1/Home/Error");

В настоящее время вы используете эту перегрузку UseExceptionHandler, которая ожидает URL-путь:

public static Microsoft.AspNetCore.Builder.IApplicationBuilder UseExceptionHandler (
              this Microsoft.AspNetCore.Builder.IApplicationBuilder app, 
              string errorHandlingPath);

Обратите внимание, что для параметра errorHandlingPath требуется правильный формат URL-адреса, поскольку он будет использоваться для вызова конструктора PathString, поэтому необходимо добавить косую черту в начале URL-адреса:

app.UseExceptionHandler("/App1/Home/Error");

Аналогичная проблема: Startup.cs - путь в 'value' должен начинаться с '/'

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