无法加载API定义500内部服务器错误,带有Swagger
我创建了一个全新的Asp.net Core 2.2 web api应用程序。 然后,我将Swagger配置如下。 在启动文件的ConfigureServices方法中,我有以下内容无法加载API定义500内部服务器错误,带有Swagger,swagger,Swagger,我创建了一个全新的Asp.net Core 2.2 web api应用程序。 然后,我将Swagger配置如下。 在启动文件的ConfigureServices方法中,我有以下内容 services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" }); }); services.AddMvc().SetCompatibilit
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info
{
Title = "My API", Version = "v1"
});
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
接下来在Configure方法中,我有
if (env.IsDevelopment())
app.UseDeveloperExceptionPage();
else
app.UseHsts();
app.UseSwagger();
app.UseHttpsRedirection();
app.UseMvc();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
c.RoutePrefix = string.Empty;
});
到目前为止还不错。大摇大摆的用户界面工作得棒极了。
当我介绍一个简单的MVC控制器时,问题就开始了
[Route("[controller]/[action]")]
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
我得到以下错误
未能加载API定义错误获取错误内部服务器错误/swagger/v1/swagger.json
斯威格似乎不接受Asp.net核心mvc控制器。如果我把mvc控制器注释掉,事情又会好起来
有办法解决这个问题吗 尝试用http动词符号修饰控制器中的方法:
[Route("[controller]/[action]")]
public class HomeController : Controller
{
[HttpGet, Route("myRoute")]
public IActionResult Index()
{
return View();
}
}
只是[HTTPGET ]符号方法应该解决这个问题,如果你不想把这个路由。
请考虑这个,希望这能解决你的问题。