Startup.cs - 'value'中的路径必须以'/'开头

Ben*_*ort 7 asp.net-mvc openid-connect .net-core

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

给出的例外是

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

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

Hak*_*tık 7

由于问题中没有代码,所以我会尽量做一个笼统的回答。
当您使用此重载PathString.FromUriComponent(string)并且字符串不以/字符开头时会出现此异常

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

PathString.FromUriComponent("controllerName/actionName"); // throw exception
Run Code Online (Sandbox Code Playgroud)

并修复以前的异常,你可以这样写

PathString.FromUriComponent("/controllerName/actionName"); // working, but as relative path
Run Code Online (Sandbox Code Playgroud)

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

如果您想使用绝对路径(而不是以 开始您的字符串/),那么您必须使用此方法的另一个重载,它将Uri对象作为参数而不是string

这是一个例子

// use an absolute path
PathString.FromUriComponent(new Uri("https://localhost:8000/controller/action/"))
Run Code Online (Sandbox Code Playgroud)