将 .NET 版本从 6 更新到 8 后,启动容器后我无法使用已部署的 WebApp,并出现如下所示的异常
我现在有了这个 Dockerfile,它可以在 .NET 6 上正常工作。只是 SDK 版本有所不同。
Dockerfile
FROM node:21-alpine3.18 as build-npm
WORKDIR /src`
COPY ["MyProj", "MyProj"]
WORKDIR /src/MyProj/NpmJS/
RUN npm install
RUN npm run build
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY --from=build-npm /src .
COPY ["otherProj", "otherProj"]
RUN dotnet restore "MyProj/MyProj.csproj"
FROM build AS publish
ENV BuildingDocker true
RUN dotnet publish "MyProj/MyProj.csproj" -c Release --no-restore -o /app/publish
FROM nginx:alpine AS final
WORKDIR /usr/share/nginx/html
COPY --from=publish /app/publish/wwwroot .
COPY MyProj/nginx.conf /etc/nginx/nginx.conf
重现步骤
显然,您需要安装并运行 .NET 8 工作负载和 Docker。
"applicationUrl": "https://localhost:5001;http://localhost:5000"
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY --from=build-npm /src .
COPY ["otherProj", "otherProj"]
RUN dotnet restore "MyProj/MyProj.csproj"
FROM build AS publish
ENV BuildingDocker true
RUN dotnet publish "MyProj/MyProj.csproj" -c Release --no-restore -o /app/publish
FROM nginx:alpine AS final
WORKDIR /usr/share/nginx/html
COPY --from=publish /app/publish/wwwroot .
COPY MyProj/nginx.conf /etc/nginx/nginx.conf
events { }
http {
include mime.types;
server {
listen 5001;
location / {
root /usr/share/nginx/html;
try_files $uri $uri/ /index.html =404;
}
}
}
导航到本地主机并打开开发工具
看到以下错误:
Uncaught TypeError: Cannot read properties of undefined (reading 'dotnet.wasm')
at blazor.webassembly.js:1:35948
at window.wasmmodulecallback (blazor.webassembly.js:1:42668)
at :1:20
at blazor.webassembly.js:1:43463
at blazor.webassembly.js:1:43478
at new Promise ()
at Object.start (blazor.webassembly.js:1:34639)
at Object.At [as start] (blazor.webassembly.js:1:59571)
任何帮助或指导表示赞赏。
我的浏览器本地 .NET 更新也出现此错误。清除缓存存储可以修复它,但不能解决此问题。
此错误是因为某些软件包未升级。更改项目版本后,您可以尝试删除 .bin .obj 文件夹并重建。
或者如果它不起作用,创建一个新的.Net8项目并将旧文件复制到其中肯定会解决问题。