当我在Windows Docker容器中运行的.NET Core 2.1控制台应用程序中启动HttpListener时,出现此异常:
System.Net.HttpListenerException:访问被拒绝
这是我的代码:
HttpListener httpListener = new HttpListener();
httpListener.Prefixes.Add("http://*:8080/test/");
httpListener.Start();
我的Docker映像基于以下Microsoft映像:
FROM microsoft / dotnet:2.1-运行时
当我在Docker容器外运行控制台应用程序时,如果我从具有管理员权限的命令提示符下启动该应用程序,则它可以正常工作。如果我以普通用户身份在容器外部运行它,则它将失败,并出现相同的“拒绝访问”异常。
在Docker容器中运行时如何避免这种异常?我认为您不能以管理员身份运行容器。 我看到了调用此命令的建议
netsh http add urlacl url=http://*:8080/ user=Everyone listen=yes
但是容器中的netsh命令没有http选项。
注意:如果我在容器中运行基于.NET Framework 4.7.2的相同程序,则它将起作用。
正在寻求建议。