【问题标题】:Owin Hosting Start Self HostOwin Hosting 开始自托管
【发布时间】:2016-10-02 08:32:33
【问题描述】:

在控制台应用程序中,您可以像这样启动 owin 主机:

string url = "http://localhost:8080";
using (WebApp.Start(url))
{
      Console.WriteLine("Server running on {0}", url);
      Console.ReadLine();
}

线

Console.ReadLine();

停止服务器停止。我将如何在一个类中启动服务器并阻止它停止?我会这样做吗?

    public bool keepHosting;
    public void Start()
    {
        using (WebApp.Start(serverUrl))
        {
            while (keepHosting)
            {

            }
        }
    }

【问题讨论】:

  • 不太确定你想做什么 - 什么会触发这个(例如启动应用程序)?任何有能力开始某事的东西可能也应该有能力阻止它——这在上面是不可能的。您可能需要在整个应用程序的入口点调用“Start”,并保持该部分继续运行。
  • 将代码更改为更清晰一些。我只是不知道如何让托管进程保持活力。
  • while 循环和Console.ReadLine(); 是我通常自己做的事情。不明白为什么它不适合你。
  • 托管进程将保持活动状态,无论您的应用程序存活多久。所以在控制台应用程序中,它是活动的,因为 ReadLine 正在等待输入(所以程序仍在运行)。如果你想启动 webapp 但不在这个类中管理它,你可能需要存储 WebApp.Start 方法的结果,并实现 IDisposable 模式以在你的类被释放时调用 dispose 。由调用者自己保持活动状态。
  • public IDisposable Start() { return WebApp.Start(serverUrl); }

标签: c# owin


【解决方案1】:

我认为你可以这样做。

    public IDisposable Start()
    {
     return  WebApp.Start(serverUrl);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 2018-04-11
    • 1970-01-01
    • 2019-03-02
    • 2019-02-24
    • 2015-01-09
    相关资源
    最近更新 更多