Dev*_*rSD 7 iis swagger-ui .net-core-3.1 swashbuckle.aspnetcore
I have published web API application(.Net Core 3.1) on IIS under Default Web Site.\nI have follow the all necessary steps to host .net core application on IIS.\nUsing postman tool I have checked that all API are working correctly.
\n因为我想在从 IIS 浏览 API 后将 Swagger UI 页面显示为启动页面。\n每当我单击 [browse:XXX:XXX:XXX:XXX:443 (https) ] 链接时,它都会显示This XXX.XXX。找不到 XXX.XXX 页\xe2\x80\x99
\n浏览器地址:https://https/XXX.XXX.XXX.XXX/API
\n注意:如果我在上面的 url 末尾添加了“/”,那么它会自动重定向到 swagger 的 Index.html 页面。
\n我现有的 swagger 源代码
\npublic void ConfigureServices(IServiceCollection services)\n{\n services.AddSwaggerGen(c =>\n {\n c.SwaggerDoc("v1.0.0", new Microsoft.OpenApi.Models.OpenApiInfo\n {\n Title = "TestAPI",\n Version = "v1.0.0",\n Description = "Test API"\n });\n\n // Set the comments path for the Swagger JSON and UI.\n var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";\n var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);\n c.IncludeXmlComments(xmlPath);\n });\n}\nRun Code Online (Sandbox Code Playgroud)\npublic void Configure(IApplicationBuilder app, IWebHostEnvironment env)\n{\n app.UseSwagger();\n app.UseSwaggerUI(c =>\n {\n c.SwaggerEndpoint("./swagger/v1.0.0/swagger.json", "TestAPI V1.0.0");\n c.RoutePrefix = "";\n });\n}\nRun Code Online (Sandbox Code Playgroud)\n在 IIS 中,我已按名称 (API) 添加了应用程序。\n我想在从 IIS 访问后将 swagger Index.html 页面显示为默认页面。
\n我不明白代码级别缺少任何内容,或者需要在 IIS 上进行任何设置才能显示默认的 swagger 页面。
\n附加信息:
\nSwagger 包:Swashbuckle.AspNeteCore(5.3.1)
\n操作系统:Windows 10
\nIIS:10.0.19041.1
\n注意:我在 IIS 上将相同的 API 发布为 NewWebSite(不在默认网站下),然后它可以按预期工作。
\nkev*_*vin 11
就我而言,Swagger 正在工作,但它只是没有显示为启动页面。在launchsettings.json中的配置文件下添加"launchUrl": "swagger"对我有用。
{
"iisSettings": {
...
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
...
}
Run Code Online (Sandbox Code Playgroud)
Abr*_*ian -2
基本上,您所做的一切足以配置Swagger UI扩展。
当我们为文件设置以下代码段后Swagger JSON,网站的基地址将显示Swagger索引页面。
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
c.RoutePrefix = string.Empty;
});
Run Code Online (Sandbox Code Playgroud)
同时,Swagger.json当我们配置XML注释路径时,也可以正常生成文件。
var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
c.IncludeXmlComments(xmlPath);
Run Code Online (Sandbox Code Playgroud)
官方教程。
https://learn.microsoft.com/en-us/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-3.1&tabs=visual-studio
IIS 配置可能有问题。就我而言,默认网站和新网站都可以正常工作。我怀疑您的默认网站中是否存在某些 URL 规则。请检查默认网站的 URL 重写扩展下是否存在 URL 规则。
另外,在我们删除了一些URL规则后,请清除本地浏览器缓存,或者在浏览器的私密窗口中进行验证。
如果问题仍然存在,请随时告诉我。
| 归档时间: |
|
| 查看次数: |
14074 次 |
| 最近记录: |