Startup.cs - The path in 'value' must start with '/'

13,136

Solution 1

As there is no code in the question, so I will try to make a general answer as possible.
This exception appears when you use this overload PathString.FromUriComponent(string) and the string does not start with the / character

so,for example, the following code will throw an exception :

PathString.FromUriComponent("controllerName/actionName"); // throw exception

and to fix the previous exception you can write it like this

PathString.FromUriComponent("/controllerName/actionName"); // working, but as relative path

and of course, this will be a relative path.

In case you wanted to use an absolute path, (and not start your string with /), then you must use another overload of this method which takes Uri object as a parameter instead of string

here is an example

// use an absolute path
PathString.FromUriComponent(new Uri("https://localhost:8000/controller/action/"))

Solution 2

I also get the same exception, but with another method UseExceptionHandler:

The error was:

ArgumentException: The path in 'value' must start with '/'. Nombre del parámetro: value Microsoft.AspNetCore.Http.PathString..ctor(string value) Microsoft.AspNetCore.Builder.ExceptionHandlerExtensions.UseExceptionHandler(IApplicationBuilder app, string errorHandlingPath)

Fixed by replacing

app.UseExceptionHandler("Home/Error");

with

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

notice the addition of the / char at the beginning of the string.

Share:
13,136

Related videos on Youtube

Ben Short
Author by

Ben Short

Updated on June 04, 2022

Comments

  • Ben Short
    Ben Short almost 2 years

    I have created a new .NET Core MVC application in Visual Studio 2017 and enabled multi-tenant authentication.
    I've completed the configuration (ClientId, Authority, etc) but when I debug the application there is an exception in the Startup.cs, specifically the app.useOpenIdConnectAuthentication method.

    The exception given is

    System.ArgumentException: The path in 'value' must start with '/'.

    I'm a bit of a novice when it comes to C# and .NET Core, so I'm not sure whether I'm missing something obvious. The main sticking point is what the debugger is referring to with the parameter 'value' as I can't see any mention of it in the code. There are no changes beyond the default template generated by visual studio, other than adding the configuration items to the appsettings.json.

    • Admin
      Admin about 7 years
      It would be helpful if you include your startup.cs code in the question. value is the name of the parameter, not the name of something from your code.
    • Developer
      Developer about 7 years
      Do you have something like LoginPath or similar path configured in auth config? Those paths/route should start with /
    • Ben Short
      Ben Short about 7 years
      Thanks all, managed to figure it out in the end. All the documentation suggests CallbackPath should be 'signin-oidc' without a slash, but changing it to '/signin-oidc' seems to have resolved it.