docker - 在 Windows Docker 容器中启动 HttpListener 时访问被拒绝
问题描述
当我在 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-runtime
当我在 Docker 容器外运行控制台应用程序时,如果我从具有管理员权限的命令提示符启动应用程序,它就可以工作。如果我在容器外以普通用户身份运行它,则会失败并出现相同的访问被拒绝异常。
在 Docker 容器中运行时如何避免此异常?我认为您不能以管理员身份运行容器。我已经看到了调用此命令的建议
netsh http add urlacl url=http://*:8080/ user=Everyone listen=yes
但是容器中的 netsh 命令没有 http 选项。
注意:如果我在容器中运行基于 .NET Framework 4.7.2 的相同程序,它可以工作。
寻求这方面的建议。
解决方案
推荐阅读
- powershell - 在 foreach 循环的第二次迭代中引用函数中的第二个参数
- git - 是否可以强制“git diff”为不在存储库中的文件显示“相似度索引”
- c - C MPI 并行编程 - 分段错误 11 错误
- python - Pandas 数据框中的 Ping 主机
- javascript - Await 不是在等待 api post 完成,而是同时发生
- java - 生命游戏没有更新网格
- java - javafx Intellij IDEA 索引用户控件
- java - docx4j:docx 到 pdf 的转换 - docx 内容没有逐页显示为 pdf
- php - 在 PHP 中操作 post json
- lambda - 比在 java 8 中使用多个 if 更好的方法