ASP.net webapicore发布成exe运行后为啥无法访问swagger?
时间: 2023-11-13 09:02:58 浏览: 143
在ASP.NET Web API Core中,Swagger是一个用于构建Web API文档的框架。在开发阶段,我们可以通过访问http://localhost:portNumber/swagger/index.html来查看生成的Web API文档。但是,如果我们将ASP.NET Web API Core应用程序发布成exe文件并运行,可能会无法访问Swagger UI。
这是因为Swagger UI在运行时需要访问应用程序的xml文档注释,以便生成Web API文档。在ASP.NET Web API Core中,默认情况下并不会将xml文档注释包含在发布的exe文件中。因此,我们需要手动将xml文档注释包含在发布的exe文件中。
以下是如何在ASP.NET Web API Core中包含xml文档注释的步骤:
1. 在项目的属性中,打开“生成”选项卡,并勾选“XML文档文件”选项。
2. 在“XML文档文件”选项中输入文档文件的名称,如“WebApiDocumentation.xml”。
3. 在项目的根目录下找到生成的XML文档文件,并将其拷贝到发布文件夹中。
4. 在应用程序启动时,添加以下代码以启用Swagger UI:
```csharp
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
```
其中,`app`是`IApplicationBuilder`类型的实例。
5. 重新发布应用程序,并运行exe文件,访问http://localhost:portNumber/swagger/index.html即可查看Web API文档。
阅读全文