gpt4 book ai didi

c# - 自托管 Web API 的正确方法是什么?

转载 作者:IT老高 更新时间:2023-10-28 22:15:16 26 4
gpt4 key购买 nike

我并不是在寻求最佳实践建议,因为互联网上有大量关于该主题的博客文章和教程。

我问这个问题是出于困惑,因为 Microsoft 对整个自托管过程进行了很多更改,而且我发现的每个教程都采用了不同的、已弃用或不熟悉的方法。

我的目标是在旧版 Windows 服务中设置一个自托管的 Web API,以控制来自非 Windows 客户端的各种长时间运行的任务,例如集成了 的 Android 应用程序WCF/SOAP 客户端真的可以是一个 PITA。

我知道 WCF 能够提供 RESTful 服务这一事实,但由于 Web API 确实适合这样的任务,我想我试了一下。

这就是我目前使用 OWIN (Katana) 启动我的 API 的方式:

public class ApiBootstrap {

var httpConfiguration = new HttpConfiguration();
// ... configure routes etc.

appBuilder.UseWebApi(httpConfiguration); // appBuilder = IAppBuilder
var disposable = WebApp.Start<ApiBootstrapper>(_myBaseUri);

}

但大多数教程采用不同的方法:

var config = new HttpSelfHostConfiguration("http://localhost:999");
// ... configure routes etc..

var server = new HttpSelfHostServer(config);
server.OpenAsync().Wait();

现在,我知道 HttpSelfHostServer 类来自 System.Web.Http.SelfHost 而不是使用 OWIN,并且两者都可以正常工作。

但我几天来一直在努力完成非常简单的任务,例如使用 SSL 保护连接、创建授权等,因为我找到的关于这些主题的每个教程都提到了自托管方法不使用 OWIN。但是 AFAIK,OWIN (Katana) 是 Microsoft 实现自托管的首选方法。

作为一个初学者,完全迷茫无助!

编辑:仅在 6 分钟内获得 4 次点赞、1 次收藏和 30 次观看,但仍然没有答案。真的不能说我在这里做的是天才的咖啡,还是只是一个令人难以置信的愚蠢问题。

最佳答案

HttpSelfHostServer 现在在 Nuget 上被标记为旧版。但是,Owin HTTPListener 现在只是 RTM 相当短的一段时间。

此外,Owin 的部分 Intent 是确保您设置中间件的方式是相同的,无论您如何托管。因此,您可能不会看到很多直接针对 Owin HttpListener 托管的文章,因为它应该与您使用的主机无关。

OwinHttpListener 目前在后台使用标准的 .net HttpListener,这实际上与 HttpSelfHostServer 使用的相同。因此,像 SSL 这样的东西应该以几乎相同的方式进行配置。

就身份验证而言,您是否查看过 Microsoft.Owin.Security,很可能您需要的一切都在其中。

关于c# - 自托管 Web API 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20563066/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com