有没有办法在Swashbuckle/Swagger错误上获得堆栈跟踪或内部异常?在某种程度上,它停止工作。我不确定是不是在我从.Net Core 2.0升级到2.1的时候,但我很确定在那之后它仍然可以工作。当我导航到myapidomain/swagger/index.html时,我得到这个错误:
这可没什么用两周前还能用的...我没有改变斯威格的配置一直都是这样
public void ConfigureServices(IServiceCollection services)
{
...
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info
{
Version = "v1",
Title = "My.API",
Description = "Test"
});
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
app.UseDeveloperExceptionPage();
else
app.UseHsts();
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "PropWorx API V1");
});
...
}
我正在API上使用Swashbuckle.AspNetCore3.0.0。
4条答案
按热度按时间xwbd5t1u1#
同意UI上的信息对调试没有帮助(加载API定义失败/获取错误等),但是可以通过打开浏览器的调试工具(例如,Chrome上的F12),刷新
/swagger
端点,然后检查swagger.json
负载-这是一个XHR请求,将失败并显示500
状态代码。(我建议在一个大的项目中,你可以把这个链接加到书签上,这样以后你就可以直接转到json文件了,例如:
https://MyHost/swagger/v1/swagger.json
)例如,在下面的人为错误中,我在两个方法之间重复了相同的路由:
这会产生错误:
你现在应该能找到并修复了。
j2datikz2#
如果你的API有两个或多个相同的
[HttpGet]
,它就不能工作了。您应该指定[HttpGet],[HttpGet ("{id}")]
llew8vvj3#
我发现SwaggerFunctions需要匿名才能完成Swagger/UI。
ny6fqffe4#
我今天遇到了这个问题,并尝试了很多方法来解决它,你应该在C#控制器代码中删除[http]标记之前的所有[Route],例如:
你的路线代码一定是这样的你的路线代码一定是这样的
在我的项目中,