Обычно конечная точка будет работать с: http://localhost: 5000 / Service.asmx . Как я могу получить доступ к этому от клиента, который работает в отдельном контейнере? Я попытался получить ip основного контейнера net и заменил localhost.
Это мой Dockerfile:
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app
# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore
# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "dotnet_soap_example.dll"]
Я запустил его с:
docker build -t dotnet_soap_example .
docker run -p 5000:5000 dotnet_soap_example
И результат:
warn: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[60]
Storing keys in a directory '/root/.aspnet/DataProtection-Keys' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed.
warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
No XML encryptor configured. Key {89888afb-2afd-4798-8474-9b71d743a397} may be persisted to storage in unencrypted form.
info: Microsoft.Hosting.Lifetime[0]
Now listening on: http://[::]:80
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
Content root path: /app
Кроме того, когда я создал проект, я сделал это с помощью:
dotnet new web
и установил пакет SoapCore NuGet:
dotnet add package SoapCore
Нужно ли добавлять эту установку NuGet в Dockerfile?