【发布时间】:2021-03-31 22:44:23
【问题描述】:
您好,我使用 .Net 5 创建了 GRPC 项目。下面是我的 Docker 文件。
FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build
WORKDIR /src
COPY ./*.sln ./
COPY */*.csproj ./
RUN for file in $(ls *.csproj); do mkdir -p ${file%.*} && mv $file ${file%.*}; done
RUN dotnet restore
COPY . .
WORKDIR "/src/Geography"
RUN dotnet build "Geography.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "Geography.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Geography.dll"]
我尝试使用 Docker 在 Visual Studio 中运行解决方案,我看到容器已启动并正在运行。我看到下面暴露的端口。
0.0.0.0:32775->80/tcp, 0.0.0.0:32774->443/tcp
我创建了客户端应用程序并尝试点击 grpc 端点,如下所示。
using var channel = GrpcChannel.ForAddress("http://localhost:32774");
var client = new Geographys.GeographysClient(channel);
这里出现错误
Status(StatusCode="Internal", Detail="启动 gRPC 调用时出错。 HttpRequestException:发送请求时发生错误。 IOException:无法从传输连接读取数据:一个 现有连接被远程主机强行关闭.. SocketException:一个现有的连接被强制关闭 远程主机。", DebugException="System.Net.Http.HttpRequestException: 发送请求时出错。 ---> System.IO.IOException:无法从传输中读取数据 连接:已存在的连接被远程强行关闭 主持人.. --->
有人可以帮助我了解此问题的根本原因吗?任何帮助将不胜感激。谢谢
【问题讨论】:
标签: docker asp.net-core grpc