【问题标题】:Is there way to create a true selfhosted .Net ( Core) wepApp without any proxy有没有办法在没有任何代理的情况下创建一个真正的自托管 .Net(核心)网络应用程序
【发布时间】:2018-05-30 13:27:38
【问题描述】:

我可以在 ASP.NET 和 .NET Core 中创建自托管 Web 服务(WCF、REST、基于 Kastrel 或 Katana 等)。但是有没有办法创建一个完整的工作网站或 SPA,可能是基于 MVC 的?

例如我可以在 .NET Core 启动文件中添加代码:

 app.Run(async (context) =>
        {
            await context.Response.WriteAsync($"Hello World! {
          //insert your web site here :-)
          }");
        });

-但我应该自己创建所有的html、js等代码。可能我们有更好的方法吗?

我当然知道我们有 ASP 之类的重要部分 - 但我们无法创建自托管应用程序,我们需要一个 Web 服务器 - 通常是 IIS!

【问题讨论】:

  • 您不需要 Web 服务器,只需在 Visual Studio 中创建一个新的 Asp.Net Core Web 应用程序,它将运行自托管。
  • 你不能设置除 localhost (127.0.0.1) 以外的其他地址

标签: c# asp.net-core .net-core self-hosting


【解决方案1】:

我猜你的意思是你的Visual Studio自托管Web服务器无法从外部访问?

假设您的端口转发和防火墙配置正确。您需要更改应用的绑定地址:

new WebHostBuilder()
    .UseKestrel()
    ...
    .UseUrls("http://*:80")
    ...;

注意:

这不应该在没有反向代理的情况下使用。

更多关于为什么在没有反向代理的情况下不应该这样做的信息:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.0&tabs=aspnetcore2x

【讨论】:

  • 我会添加一个巨大的警告,不要在公共应用程序中这样做,这应该只用于无法从 Internet 访问的 Intranet 应用程序
  • @CamiloTerevinto,你能解释一下为什么吗?我知道由于数百个(额外的非生产过程),他不会真正获得最佳性能,但如果防火墙设置良好,为什么会有问题?
  • 8 秒我应该等待
  • @MohammedNoureldin 请阅读官方文档:docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/…
  • @CamiloTerevinto,好吧,你是这个意思。我只是误会你了。当然,应该使用 nginx(或任何反向代理)。我个人在我的项目中喜欢使用 nginx。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-05
  • 1970-01-01
  • 1970-01-01
  • 2019-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多