gpt4 book ai didi

c# - 为什么 Kestrel 不在指定端口监听?

转载 作者:行者123 更新时间:2023-11-30 23:03:29 29 4
gpt4 key购买 nike

我正在尝试使用 kestrel 创建 Web 应用程序。本文中https://learn.microsoft.com/pl-pl/aspnet/core/fundamentals/servers/kestrel?tabs=aspnetcore2x有解释如何使用红隼(下面的代码):

public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseKestrel(options =>
{
options.Listen(IPAddress.Loopback, 5000);
})
.Build();

IIS 默认在端口 49950 启动,但没有任何内容在端口 5000 上监听。为什么它不起作用?我错过了什么吗?我想强制 kestrel 仅从代码中监听 5000(不干扰其他项目文件)。此外,UseUrls 是 Not Acceptable ,因为缺少 SSL 支持。我怎样才能做到这一点?

最佳答案

Kestrel 是应用程序使用的端口。 IIS Express 用作一种反向代理。

如果你想访问 kestrel 配置的端口,你必须将它作为控制台应用程序启动。单击开始按钮旁边的下拉按钮并选择 YourCompany.YourApplication.Mvc(或您的项目的任何名称)而不是“IIS Express”。然后单击开始,应用程序启动并出现一个控制台窗口。

保存,然后开始应用/调试。

如果您仍想使用 IIS-Express(因为您希望将其托管在 IIS 上并希望更深入地体验它),请转到项目属性,选择“调试”选项卡,选择“IIS Express”配置文件在下拉菜单中,然后更改“App URL”。这将使用新端口更新 launchSettings.json 文件和 IIS Express 配置 (.vs/config/applicationhost.config)。

我强烈建议不要手动编辑 launchSettings.json 文件,因为这可能会使 applicationhost.config 保持不变(这实际上决定了端口,launchSettings .json 只是告诉 IDE 在浏览器中打开哪个 URL。

如果出于任何原因您在 launchSettings.json/applicationhost.config 中的 url 不同步,您可以手动编辑 applicationhost.config 或直接删除它(.vs 文件夹通常是隐藏的,您可能必须先在您的资源管理器中显示隐藏文件夹),它将在下次打开解决方案和/或运行应用程序时重新创建。

关于c# - 为什么 Kestrel 不在指定端口监听?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49895258/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com