gpt4 book ai didi

c# - 在 .NET Windows 服务中创建 API 端点

转载 作者:太空狗 更新时间:2023-10-29 20:19:14 24 4
gpt4 key购买 nike

我有一个 ASP.NET 项目和一个 .NET Windows 服务在同一台机器上运行,我希望它们能够通信(目前只有 ASP.NET => 服务一种方式)。

最方便的方法(IMO)是服务中的 REST/其他 API 端点,ASP.NET 项目将调用该端点(因为 ASP.NET 无论如何都使用 API,并且它们可以受到保护等)。问题是我似乎无法在 Windows 服务中找到执行此操作的方法。是否有本地方法/库来支持这一点?

在两个项目中使用 .NET Framework 4.5.2。

最佳答案

.NET Core ERA 及更高版本

自从我写这篇文章以来,发生了很多变化。 .NET (dotnet) Core 变得更加著名——我们甚至已经超越了它;欢迎.NET 5 .

使用 ASP.NET Core 使问题中解决的任务变得更加容易,并且是进入新设置或项目的方式。

只需创建一个选择 ASP.NET Core 模板的新项目。它包含仅适用于 API、MVC、SPA 等的模板(或者,如果您想包含可选的页面,请选择 Blazor)并查看下面提到的教程之一。

enter image description here

可以找到Windows 服务 的文档here. (host-and-deploy/windows-service)

如果您使用 linux 作为主机操作系统 - 有一篇关于如何完成设置的优秀文章:Niels Swimberghe


遗产

至于ASP.NET Core 2.2查看this article


原始答案 - pre .NET Core (-ish)。

nuget 上有一个库:

https://www.nuget.org/packages/Microsoft.AspNet.WebApi.OwinSelfHost

There is an article on how to use it here.它是一个控制台应用程序,但很容易转换为 Windows 服务。

class Program
{
static void Main(string[] args)
{
using (WebApp.Start<Startup>("http://localhost:8080"))
{
Console.WriteLine("Web Server is running.");
Console.WriteLine("Press any key to quit.");
Console.ReadLine();
}
}
}

您会发现您将拥有所有常用的 API 功能(即 Controller 、路由、 Action 过滤器)。

关于c# - 在 .NET Windows 服务中创建 API 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50715292/

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