Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法加载API定义500内部服务器错误,带有Swagger_Swagger - Fatal编程技术网

无法加载API定义500内部服务器错误,带有Swagger

无法加载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

我创建了一个全新的Asp.net Core 2.2 web api应用程序。 然后,我将Swagger配置如下。 在启动文件的ConfigureServices方法中,我有以下内容

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 ]符号方法应该解决这个问题,如果你不想把这个路由。

请考虑这个,希望这能解决你的问题。