Asp.net core 设置“;“服务器名称”;当使用kestrel和dotnet内核时

Asp.net core 设置“;“服务器名称”;当使用kestrel和dotnet内核时,asp.net-core,kestrel-http-server,Asp.net Core,Kestrel Http Server,我正在使用asp.netmvc编写一个应用程序,它现在运行在微软的kestrel服务器上。它工作正常,我在启动时使用hosting.json文件将值传递给它,定义如下 { "server": "Microsoft.AspNet.Server.Kestrel", "server.urls": "http://localhost:5000;https://localhost:5001" } 有没有办法给“服务器”起个名字,这样它就不会一直以localhost或未定义的报告?请将lo

我正在使用
asp.netmvc
编写一个应用程序,它现在运行在微软的
kestrel
服务器上。它工作正常,我在启动时使用
hosting.json
文件将值传递给它,定义如下

{
    "server": "Microsoft.AspNet.Server.Kestrel",
    "server.urls": "http://localhost:5000;https://localhost:5001"
}

有没有办法给“服务器”起个名字,这样它就不会一直以
localhost
未定义的
报告?

请将
localhost
替换为
*
。这将带来以下好处:

  • 如果您提供
    localhost
    ,则只能通过
    http://localhost:5000
    且不使用IP[
    http://192.168.1.2:5000
    ,一个例子]。通过使用
    *
    ,您可以通过IP进行访问
  • 您可以从其他PC或移动设备连接到服务器
  • 几天前,我有与您相同的要求,并从以下方面获得了解决方案:。[默认情况下,注释部分是隐藏的。请单击显示注释,然后搜索本地主机。]

    提示1:要从移动设备查看应用程序,请检查:


    提示2:我的问题和答案已发布在此处:

    您应该注意,将kestrel URL更改为*在安全方面是个坏主意。您现在已经将Kestrel暴露于直接连接,而不是在IIS后面保护它。ASP.NET团队不建议这样做。保持Kestrel在本地主机上侦听,并允许IIS作为公开的侦听器。@blowdart,我遇到了*方法的问题,我已经更新了代码。谢谢谢谢你的意见。“保持Kestrel在本地主机上侦听,并允许IIS作为公开的侦听器。”。但是,红隼独立于IIS运行,对吗?如果我完全依赖Kestrel而不是任何其他Web服务器,会发生什么?asp.net团队的建议是永远不要直接公开Kestrel。总是把它放在后面。没有例外。我陷入了僵局。这个答案确实告诉了我如何完成我的要求,但这被视为一种非常可怕的做法,所以我不知道该怎么办。嘿@blowdart,看看ASP.Net团队的Stephen Halter在这里说的话,在我的例子中,我们没有任何奢侈的理由把事情抛在IIS后面。要走哪条路?你想要完成什么需要一个服务器名的任务?:(我只是想停止在服务器标签上说“未知”。