我有一些我目前正在使用 dotnet xyz.dll 运行的 .Net 核心微服务。
他们目前运行良好,但是为了让一个人与另一个人交谈,我当然需要防火墙例外。
没有多想,我使用了一个脚本来使用 netsh 并向 dll 添加异常。但是,这似乎无法按预期工作。
由于 dotnet 是一个编译器,而 dll 本身很可能没有“运行”,从技术意义上讲,这可能比听起来要复杂得多。
向 dotnet.exe 本身添加异常听起来是个坏主意,那么唯一的解决方案是编译为 exe,然后向其中添加异常吗?
更新:
只是为了在需要时添加更多背景。
我有一系列通过nomad部署的微服务。Nomad 本身从文件存储复制,将其放在机器上,然后运行下面的脚本。程序运行,除防火墙外一切正常。
我当然会部署一个 exe,但是我必须编译所有变体并通过 nomad 知道放置目标才能选择正确的。
netsh advfirewall firewall add rule name="Allow %1" dir=in action=allow program="%2"
dotnet %2
netsh advfirewall firewall delete rule name="Allow %1" dir=in
(netsh 显然只适用于 Windows,但这两行可能取决于环境)
交叉发布在 dotnet core github这可能是一个更好的地方。