.net-core - 如何在.net core 中获取当前进程监听端口?
问题描述
创建一个cmd进程,调用netstat
可能会得到监听端口,但是它很复杂,创建可能很慢,任何内置方法都可以做到吗?
我找到了IPGlobalProperties.GetIPGlobalProperties().GetActiveTcpListeners()
,但这将返回所有 tcp 侦听器并且没有进程信息。
解决方案
在启动项目时,有一种方法可以获取 current Address:Port
,我发现了这一点。
关键是不知何故来自you must define at least once 'ASPNETCORE_URLS'
外包。如果您不执行直接doesn't set DefaultEnpoints
导致无法访问的 .net 核心address:port
。
启动.cs
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
String ServerAddress = app.ServerFeatures.Get<IServerAddressesFeature>().Addresses.FirstOrDefault();
Console.WriteLine($"ServerInfo: {ServerAddress}");
...
}
CMD (Windows)
set ASPNETCORE_URLS = http://localhost:2020 && dotnet MyProject.dll
码头工人
docker run --rm -it -p 2020:80 -e ASPNETCORE_URLS="http://localhost:2020" MyProjectImage
笔记:
如果尝试不使用环境变量(ASPNETCORE_URLS),您将看到空的地址集合
推荐阅读
- performance - Cortex M4 LDR/STR 时序
- adsense - 某些广告中的 Google Adsense 图片未显示在我的网站上
- r - 如何使用随机森林模型反向计算给定因变量的预测变量?
- javascript - 将 Service Worker 中的数据写入 Cloud Firestore
- python-3.x - 根据 Pandas 中的索引将一个数据帧拆分为多个
- c++ - 编译器会优化构造函数调用吗
- c++ - 如何将此 C++ 代码转换为 C 代码?
- owl - 语义网和本体论书籍?
- javascript - React.js、Express.js 和可怕的 CORS
- python - Plotly:用新数据覆盖图表的数据