Startup.cs - '值'中的路径必须以' /'

时间:2017-01-24 17:32:32

标签: asp.net-mvc .net-core openid-connect

我在Visual Studio 2017中创建了一个新的.NET Core MVC应用程序并启用了多租户身份验证。
我已经完成了配置(ClientId,Authority等),但是当我调试应用程序时,Startup.cs中有一个例外,特别是app.useOpenIdConnectAuthentication方法。

给出的例外是

  

System.ArgumentException:' value'中的路径必须以' /'。

开头

对于C#和.NET Core,我有点新手,所以我不确定我是否遗漏了一些明显的东西。主要的关键点是调试器所指的参数' value'因为我无法在代码中看到它的任何提及。除了将配置项添加到appsettings.json之外,Visual Studio生成的默认模板之外没有任何更改。

2 个答案:

答案 0 :(得分:3)

由于问题中没有代码,所以我会尽量做出一般性回答 当您使用此重载PathString.FromUriComponent(string)并且字符串不以/字符开头

时,会出现上一个异常

因此,例如,以下代码将引发异常:

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

并修复上一个异常,您可以像这样写

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

当然,这将是一条相对路径。

如果你想写一个绝对路径,(而不是用/开始你的字符串),那么你必须使用这个方法的另一个重载,它需要Uri而不是string

这是一个例子

PathString.FromUriComponent(new Uri("https://localhost:8000/controller/action/"))

答案 1 :(得分:0)

我也有类似的问题:

错误是:

  

ArgumentException:“值”中的路径必须以“ /”开头。参数:值Microsoft.AspNetCore.Http.PathString..ctor(字符串值)Microsoft.AspNetCore.Builder.ExceptionHandlerExtensions.UseExceptionHandler(IApplicationBuilder应用程序,字符串errorHandlingPath)

已通过替换

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

使用

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

您还可以尝试使用

进行部署
  app.UseDeveloperExceptionPage();

并找到错误(如果有)。