Asp.net core 生成的.NET Core 2.2 exe在其他端口上启动
我想为我的.NET Core 2.2应用程序生成一个.exe,并在某个端口上启动它(比如5432)。我将Asp.net core 生成的.NET Core 2.2 exe在其他端口上启动,asp.net-core,.net-core,Asp.net Core,.net Core,我想为我的.NET Core 2.2应用程序生成一个.exe,并在某个端口上启动它(比如5432)。我将win-x64添加到my.csproj以生成exe,并在mylaunchSettings.json中添加了一个自定义applicationUrl: { ... "profiles": { "IIS Express": { ... }, "MyApp": { ... "applicationUrl":
win-x64
添加到my.csproj以生成exe,并在mylaunchSettings.json中添加了一个自定义applicationUrl
:
{
...
"profiles": {
"IIS Express": { ... },
"MyApp": {
...
"applicationUrl": "https://localhost:5432"
}
}
}
当我运行dotnet run
时,应用程序会按预期在端口5432上启动,但当我在VS 2017中构建解决方案并运行exe时,它总是在5000和5001上启动。我知道我可以添加--url=”“
,但我想知道是否有办法从我的launchSettings.json
获取端口
我正在从PowerShell运行.exe,我只使用Visual Studio重建解决方案。在Program.cs
中,在CreateWebHostBuilder()
方法中,您可以使用
WebHost.CreateDefaultBuilder(args).UseUrls(“http://[IP]:[Port]”);
此端口将用于调试和发布配置。Kestrel是ASP.NET核心的跨平台web服务器。Kestrel是默认情况下包含在ASP.NET核心项目模板中的Web服务器。当您运行dotnet时
它正确地引用launchconfig.json中的MyApp
设置
我认为当您使用VisualStudio时,它默认为IIS Express设置。如果您将默认设置更改为不使用IIS Express,则不会有问题
文件启动设置。json
仅应由Visual Studio使用,它仅用于开发目的,在登台/生产/非开发人员计算机中运行时,您不应依赖它。
换句话说,当您从外部启动应用程序时,它并没有被设计为使用此文件中的端口。这并不能真正回答我的问题,因为这与--url=”“
相同,launchSettings.json
是一个VS-only资源。您可以轻松地使用JSON文件存储自己版本的applicationUrl
,读取值并将其传递到UseUrls()
。您是从cmdline还是从Visual Studio运行exe?如果是后者,VS在项目属性/调试中有一些选项可能会覆盖您的settings@ESG我正在使用Powershell运行exe,我将适当地更新问题我更新了我的问题,我正在从Powershell运行.exe,而不是从VShell运行有点困惑。web应用程序怎么可能有exe?我正在添加注释,假设您是指dll。你试过dotnetcli吗?如下所示:$dotnet build-c Release-o./app$dotnet run./app/myapp.dlli如果您专门针对Windows,则可以生成.exedotnet publish-c Release-r win-x64
。