Я получаю ошибку 5000 на стороне сервера с Patterns.RoutePatternException и сообщением:
Microsoft.AspNetCore.Routing.Patterns.RoutePatternException: в шаблоне маршрута есть неполный параметр. Убедитесь, что каждому символу '{' соответствует соответствующий символ '}'.
Я получаю следующее исключение на стороне сервера;
15.09.2020 21:06:17 -05: 00 Ошибка Произошло необработанное исключение при выполнении запроса. Microsoft.AspNetCore.Routing.Patterns.RoutePatternException: в шаблоне маршрута есть неполный параметр. Убедитесь, что каждому символу '{' соответствует соответствующий символ '}'. в Microsoft.AspNetCore.Routing.Patterns.RoutePatternParser.Parse (шаблон строки) в Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.Parse (шаблон строки) в Microsoft.AspNetCore.Mvc.Routing.ActionEndpointFactory.Add_1 routepoints (ActionEndpointFactory.Add_1 routepoctors , Условные обозначения IReadOnlyList
1 routes, IReadOnlyList
1, логические createInertEndpoints) в Microsoft.AspNetCore.Mvc.Routing.ControllerActionEndpointDataSource.CreateEndpoints (соглашения IReadOnlyList1 actions, IReadOnlyList
1) в Microsoft.AspNetCore.Mvc.RoutEndpoint.Microsoft.AspNetCore.Mvc. )
Это мое второе приложение с Blazor / Core ASP 3.1, и я попытался скопировать первое рабочее. На стороне клиента код попадает в StartAsync ()
Log.Warning("top of start service");
connection = new HubConnectionBuilder()
.WithUrl(url)
.Build();
Log.Warning("after connect in start service");
connection.Closed += async (error) =>
{
await Task.Delay(new Random().Next(0, 5) * 1000);
await connection.StartAsync();
};
connection.Reconnecting += error =>
{
Log.Error("Connection Lost attempting to reconnect: {@error}", error);
// Notify users the connection was lost and the client is reconnecting.
// Start queuing or dropping messages.
return Task.CompletedTask;
};
try
{
Log.Warning("before start async");
await connection.StartAsync();
Log.Warning("after start async");
Program.cs
var config = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build();
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(config)
.CreateLogger();
try
{
CommandLine.Parser.Default.ParseArguments<Options>(args)
.WithParsed(RunOptions)
.WithNotParsed(HandleParseError);
BuildWebHost(args).Build().Run();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
public static IHostBuilder BuildWebHost(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
_ = webBuilder.UseUrls("http://*:8080");
}).UseSerilog();
Startup.cs
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(o => o.AddPolicy("CorsPolicy", builder =>
{
builder
//.WithOrigins("http://localhost:44322")
.AllowAnyMethod()
.AllowAnyHeader()
.AllowAnyOrigin();
}));
services.AddSignalR();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0);
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
//app.UseStatusCodePagesWithReExecute("/Error");
app.UseDeveloperExceptionPage();
}
else
{
app.UseStatusCodePagesWithReExecute("/Error");
//app.UseHsts();
}
app.UseCors("CorsPolicy");
app.UseDefaultFiles();
app.UseStaticFiles();
app.UseRouting();
//var hubConfiguration = new HubConfiguration();
app.UseEndpoints(endpoints =>
{
endpoints.MapHub<ShowsHub.BlazingShowsHub>("/shows");
endpoints.MapDefaultControllerRoute();
});
}
Предложения?
[Route("api/users/{userId/login")]
отсутствует}
. - person Michael Wang   schedule 16.09.2020