我正在尝试配置 kestrel,以便当它处于原始模式时它可以在特定端口上运行。然而,要做到这一点,launchsettings.json 似乎需要传递命令行参数来执行此操作,因为没有直接选项,并且它始终在端口 5000 上运行,如果您有需要运行的 api 和网站,这显然会发生冲突。
因此,我将 CommandLine 包添加到我的站点,您确实可以在startup.cs 文件中使用 builder.AddCommandLine() 。
问题是如何将args从program.cs获取到Startup.cs或查找它们而不是静态变量。
如果您无法获取参数,那么扩展方法就会变得毫无意义。
有更好的方法吗?
一个简单的解决方案是通过以下方式访问命令行参数环境.GetCommandLineArgs method.
您只需确保删除第一个参数,即可执行文件名称:
public class Startup
{
public Startup(IHostingEnvironment env)
{
var args = Environment.GetCommandLineArgs().Skip(1).ToArray();
var builder = new ConfigurationBuilder();
builder.AddCommandLine(args);
Configuration = builder.Build();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)