[英]Running .NET6 SwaggerApi on a raspberrypi
我正在尝试在我的树莓派上运行 a.Net6 实体框架 API。
按照 Microsoft 文档并运行应用程序后,我无法访问 swaggerui 或 API。
当我尝试通过 http://localhost:5000/ 访问页面时,控制台中没有弹出错误
网络浏览器只返回 401 错误。
以下代码:
程序.cs:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<programContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("Context") ?? throw new InvalidOperationException("Connection string 'Context' not found.")));
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseHttpsRedirection();
}
app.UseSwagger();
app.UseSwaggerUI();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllers();
app.Run();
应用设置.json:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"programApiContext": "Server=(localdb)\\mssqllocaldb;Database=programApi.Data;Trusted_Connection=True;MultipleActiveResultSets=true",
"programContext": "Server=(localdb)\\mssqllocaldb;Database=programApi.Data;Trusted_Connection=True;MultipleActiveResultSets=true"
}
do.net-信息:
.NET SDK (gemäß "global.json"):
Version: 6.0.301
Commit: 43f9b18481
Laufzeitumgebung:
OS Name: debian
OS Version: 11
OS Platform: Linux
RID: debian.11-arm64
Base Path: /opt/dotnet/sdk/6.0.301/
Host (useful for support):
Version: 6.0.6
Commit: 7cca709db2
.NET SDKs installed:
6.0.301 [/opt/dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 6.0.6 [/opt/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.6 [/opt/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET runtimes or SDKs:
https://aka.ms/dotnet-download
nginx 站点配置:
server {
listen 80;
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
启动您的应用程序后,请点击以下链接获取 swagger
https://localhost:5000/swagger/index.html
检查你的launchSettings.json
"development": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "swagger",
"applicationUrl": "https://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "development"
}
}
要检索 Swagger 文档,您需要使用其完整路径。 从开始使用 Swashbuckle 和 ASP.NET 核心文档:
启动应用程序并导航到https://localhost:/swagger/v1/swagger.json 。 生成的描述端点的文档如 OpenAPI 规范 (openapi.json) 中所示。
Swagger UI 可以在https://localhost:/swagger找到。 通过 Swagger UI 探索 API 并将其合并到其他程序中。
您必须使用额外的代码在根目录下显示 UI
要在应用程序的根目录 (https://localhost:/) 提供 Swagger UI,请将 RoutePrefix 属性设置为空字符串:
app.UseSwaggerUI(options =>
{
options.SwaggerEndpoint("/swagger/v1/swagger.json", "v1");
options.RoutePrefix = string.Empty;
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.