我在Visual Studio 2017中创建了一个新的.NET Core MVC应用程序并启用了多租户身份验证。
我已经完成了配置(ClientId,Authority等),但是当我调试应用程序时,Startup.cs中有一个例外,特别是app.useOpenIdConnectAuthentication
方法。
给出的例外是
System.ArgumentException:' value'中的路径必须以' /'。
开头
对于C#和.NET Core,我有点新手,所以我不确定我是否遗漏了一些明显的东西。主要的关键点是调试器所指的参数' value'因为我无法在代码中看到它的任何提及。除了将配置项添加到appsettings.json之外,Visual Studio生成的默认模板之外没有任何更改。
答案 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();
并找到错误(如果有)。