【问题标题】:What is the benefit(s) of self hosted web API? [closed]自托管 Web API 有什么好处? [关闭]
【发布时间】:2015-03-24 06:34:07
【问题描述】:

其实!我提出这个问题只是想知道,如果我有解决方案并且还有其他许多 API 项目,那么托管的确切方式是什么? 以及为什么我们需要自托管?

请指导我 谢谢

【问题讨论】:

    标签: c#-4.0 asp.net-web-api asp.net-web-api2 self-hosting


    【解决方案1】:

    我在 Windows 控制台和 Windows 服务类型的程序(守护程序)中使用自托管 web-api。此类应用程序是长时间运行的进程,没有任何 UI,无需安装 IIS 角色即可运行。

    好处是 web-api 控制器可以直接访问应用程序的数据。

    当您拥有此类应用程序时,自托管的可能用例是:

    • ping 该应用程序正在运行(您可以拥有单独的监控服务,该服务将使用 web-api ping 请求轮询您的应用程序并通过电子邮件警告您)
    • 当前应用程序状态的请求(调试/诊断目的)
    • 向外部服务提供 REST API
    • 提供一些 UI - 您可以返回实现为 SPA(单页应用程序)的静态页面,并使用 REST 请求为 UI 使用数据。

    我也在MS-SQL DB的具体场景中使用过web-api应用交互:

    • 从 Sql Server 2012 开始,您不能在 .NET 存储过程中使用 WCF(安装使用 WCF 的存储过程时会出错)。
    • 在 Sql Server 2005 和 2008 中可以使用 WCF,但是在服务器上更新 .NET Framework 时会出现错误(SQL Server 中的程序集版本与 GAC 错误中的程序集版本不同)。
    • web-api 在这里是 resque,因为您可以在 SQL Server 2005 及更高版本的存储过程中使用System.Net.WebClient class,而不受任何限制。

    【讨论】:

    • 还有一件事假设我在一个解决方案中有 2 个项目第一个 => Web API 项目第二个 => 我的项目然后如何托管为自托管,这种方法是否好,如果不是那么应该我愿意吗?
    • 您可以在您的项目中以自托管方式托管,只需引用您的 web-api 项目并启动主机即可。有两种自托管选项: - 使用 Microsoft.AspNet.WebApi.OwinSelfHost 是推荐方式 - 使用 Microsoft.AspNet.WebApi.SelfHost 已过时,不推荐使用方式
    • 感谢 Hal 真的很有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-22
    • 2016-03-06
    • 2014-01-01
    相关资源
    最近更新 更多