Startup.cs - The path in 'value' must star

2019-06-17 02:44发布

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.

2条回答
霸刀☆藐视天下
2楼-- · 2019-06-17 02:56

As there is no code in the question, so I will try to make general answer as possible.
The previous 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"); 

and of course, this will be a relative path.

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

here is an example

PathString.FromUriComponent(new Uri("https://localhost:8000/controller/action/"))
查看更多
爷、活的狠高调
3楼-- · 2019-06-17 03:16

I also had a similar issue:

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");

Also you can try deploying with

  app.UseDeveloperExceptionPage();

and find the error if any.

查看更多
登录 后发表回答