System.Net.HttpListenerException: «Запрос не поддерживается».
при запуске следующего кода:
Код: Выделить всё
using System.Net;
using System.Text;
string html = "Hello World";
HttpListener listener = new HttpListener();
listener.Prefixes.Add("http://0.0.0.0:1234/");
//listener.Prefixes.Add("http://localhost:1234/");
listener.Start();
while (true)
{
HttpListenerContext context = listener.GetContext();
HttpListenerResponse response = context.Response;
byte[] buffer = Encoding.UTF8.GetBytes(html);
response.ContentLength64 = buffer.Length;
Stream output = response.OutputStream;
output.Write(buffer, 0, buffer.Length);
output.Close();
}
Код: Выделить всё
FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base
EXPOSE 1234
USER app
WORKDIR /app
[...]
Код: Выделить всё
services:
demo:
image: ${DOCKER_REGISTRY-}demo
build:
context: .
dockerfile: demo/Dockerfile
ports:
- "1234:1234"
Что я пробовал:
Я выполнил код на своем хосте (без использования докера), и здесь он сработал при привязке к localhost: 1234.
Я попробовал привязать к localhost: 1234, когда хостинг в докер-контейнере. Никаких ошибок не происходит, но браузер сообщает мне, что сервер, похоже, не работает.
Я проверил, что сопоставление работает при привязке к localhost:1234 (что затем привело меня к выводу, что я должен быть привязан к 0.0.0.0:1234).
Код: Выделить всё
docker port demo_1
1234/tcp -> 0.0.0.0:1234
Я пытался найти документацию по возможным переменным среды, но все, что вы там нашли, похоже, связано с ASP.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ker-no-asp