Startup.cs - The path in 'value' must start with '/'
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.
Related videos on Youtube
Ben Short
Updated on June 04, 2022Comments
-
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 theapp.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 about 7 yearsIt 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 about 7 yearsDo you have something like LoginPath or similar path configured in auth config? Those paths/route should start with
/
-
Ben Short about 7 yearsThanks 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.
-