我有一個在 docker 容器中運行的 ASP.NET 6 API。當我在本地運行 Dockerfile 時,一切正常。我目前正在嘗試在 heroku 上托管這個 Dockerfile。
我已按照說明成功部署了映像。但是,我無法訪問任何頁面或呼叫任何控制器。默認情況下,加載它應該打開 /swagger/index.html,但我得到的只是 404 狀態。
這是 Dockerfile
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["Mongo_API.csproj", "."]
RUN dotnet restore "./Mongo_API.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "Mongo_API.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "Mongo_API.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
#ENTRYPOINT ["dotnet", "Mongo_API.dll"]
CMD ASPNETCORE_URLS=http://*:$PORT dotnet Mongo_API.dll
這些是 Heroku 的日志
2022-06-14T20:26:29.665971 00:00 heroku[router]: at=info method=GET path="/index.html" host={myapp}.herokuapp.com request_id=84697615-6cf3-4eef-9296-6febd71b2016 fwd="ip" dyno=web.1 connect=0ms service=429ms status=404 bytes=118 protocol=https
2022-06-14T20:26:37.314043 00:00 heroku[router]: at=info method=GET path="/swagger/index.html" host={myapp}.herokuapp.com request_id=85129334-7ac1-4bbb-a797-5c802a24567e fwd="ip" dyno=web.1 connect=0ms service=1ms status=404 bytes=118 protocol=https
2022-06-14T20:26:45.855736 00:00 heroku[router]: at=info method=GET path="/" host={myapp}.herokuapp.com request_id=9e9732fd-527d-4f28-b57b-1c817e74b711 fwd="ip" dyno=web.1 connect=2ms service=1ms status=404 bytes=118 protocol=https
uj5u.com熱心網友回復:
根據上面的評論,Swagger 僅設定為開發模式。
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
對于其他路線,原來我忘了在 Mongo Atlas 中將 IP 地址列入白名單。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/495426.html
標籤:码头工人 heroku asp.net-web-api
上一篇:Heroku上的主機服務器
