我想为我的.NET Core 2.2应用程序生成一个.exe,并在某个端口上启动它(假设5432)。我在我的.csproj中添加了<RuntimeIdentifier>win-x64</RuntimeIdentifier>
以生成该exe,并在我的applicationUrl
中添加了自定义launchSettings.json
:
{
...
"profiles": {
"IIS Express": { ... },
"MyApp": {
...
"applicationUrl": "https://localhost:5432"
}
}
}
当我运行dotnet run
时,应用程序将按预期的方式在端口5432上启动,但是当我在VS 2017中构建解决方案并运行exe时,它始终在5000和5001上启动。我知道我可以添加{{1 }},但我想知道是否有办法从我的--urls=""
取走港口。
我正在从PowerShell运行.exe,我仅使用Visual Studio来重建解决方案。
答案 0 :(得分:1)
文件launchSettings.json
仅应由Visual Studio使用,仅用于开发目的,在暂存/生产/非开发人员计算机中运行时,您不应依赖它。
换句话说,当您从VS外部启动应用程序时,它并非设计为使用此文件中的端口。
答案 1 :(得分:0)
Kestrel是ASP.NET Core的跨平台Web服务器。 Kestrel是ASP.NET Core项目模板中默认包含的Web服务器。当您执行dotnet run
时,它正确引用了MyApp
launchconfig.json
设置
我认为当您使用Visual Studio时,它默认为IIS Express设置。如果将默认设置更改为不使用IIS Express,则可以。
答案 2 :(得分:-1)
在Program.cs
的{{1}}方法中,您可以使用
CreateWebHostBuilder()
此端口将同时用于调试和发布配置。