【问题标题】:How to run self-hosted(owin based) web api on IIS?如何在 IIS 上运行自托管(基于 owin)的 web api?
【发布时间】:2018-06-20 11:23:48
【问题描述】:

我使用控制台应用程序开发了自托管(基于 owin)的 Web api。

在开发阶段,我正在运行控制台应用程序,一切正常。

  static void Main(string[] args)
    {

        string baseUri = "http://+:8080";

        Console.WriteLine("Starting web Server...");
        var server = WebApp.Start<Startup>(baseUri);
        Console.WriteLine("Server running at {0} - press Enter to quit. ", baseUri);
        Console.ReadLine();
        server.Dispose();
    }

现在我需要部署我的自托管 web api 以在 IIS 上运行。那么,你能告诉我在 IIS 上启动和运行我的 web api 的步骤吗?

【问题讨论】:

    标签: c# iis asp.net-web-api owin self-host-webapi


    【解决方案1】:

    为了理解理论 - take a look at this question。如果您希望 OWIN 自托管 WEB API 应用程序在 IIS 上运行,您需要使用 Owin.Host.SystemWeb package。你应该:

    • 添加一个 Startup.cs 类(您的 IIS 托管应用程序的入口点)
    • 告诉 OWIN 管道有关您的入口点:标记 Startup 类 owin 属性或通过 web.config 进行。 (See this article for reference)

    附:您可以随时查看 Visual Studio 中的标准脚手架空 Web API 项目。它包括开箱即用的 IIS Web 主机

    【讨论】:

    • 我似乎无法让它工作。 IIS 只是试图显示文件。您是否需要更改项目类型(仍然是控制台应用程序)或类似的东西?如果我可以双向运行,我会喜欢它......
    • 是的,如果您的应用程序包中没有正确的 web.config 文件和 global.asax,IIS 不会将站点视为 .net Web 应用程序。如果您希望您的应用程序是自托管的 + 同时托管的 IIS,您可以在您的解决方案中创建其他项目:一个类型的控制台应用程序和另一个 Web 应用程序(VS 将为您搭建 co​​nfig、asax 和所有 IIS 启动的东西)。这些项目将引用您应用程序的相同程序集,但从启动角度不同:一个用于 IIS,另一个用于自托管控制台应用程序
    猜你喜欢
    • 1970-01-01
    • 2016-07-07
    • 2014-09-18
    • 2023-03-15
    • 2019-02-24
    • 2015-01-09
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    相关资源
    最近更新 更多