c# 有什么 Http 服务框架么?控制台就能启动的那种?

2020-06-23 21:46:55 +08:00
 tctc4869

如题。想做迷你 http 服务端,迷你到什么程度呢,直接在控制台就能启动的,能嵌入其他.net 程序,具备这两点就行。

这类框架有哪些么,比如简单的 Http 服务端框架。对于请求处理,有统一的请求入站组件(类似 java 过滤器),用委托事件处理。

4567 次点击
所在节点    .NET
17 条回复
opengps
2020-06-23 22:08:07 +08:00
自己写个,只要你能对外输出 html 等文件流就行
zjsxwc
2020-06-23 22:18:25 +08:00
MaxTan
2020-06-23 22:32:26 +08:00
以前有个 Nancy,不过现在好像不维护了
因为现在 net core 的 webapi 已经非常好用了,而且基本也能满足楼主说的几点要求
zhuangzhuang1988
2020-06-23 22:38:11 +08:00
HTTPListener 自带的.
Counter
2020-06-23 22:38:14 +08:00
.net core 就可以满足了
b 站搜教程 solenovex
agdhole
2020-06-23 22:45:45 +08:00
.net core
maochalu
2020-06-23 23:42:39 +08:00
C# .NET 搭建简易 Http server
https://www.24kplus.com/csharp/1355.html
tctc4869
2020-06-24 08:25:50 +08:00
@Counter
@agdhole
@MaxTan
.net core 还是 Asp.net Core ? .net core 的话我目前没能找到嵌入其他程序的方式,这个是怎么弄,我想直接在非 Asp.net core 项目下启动一个 Web 程序?
Rwing
2020-06-24 08:32:26 +08:00
kestrel 是 asp.net core 官方的 web server,本就是从控制台启动的,参见的
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1
chinvo
2020-06-24 08:33:15 +08:00
引用 Microsoft.Net.Sdk.Web, 自己随便写自己的 Main 函数, 在需要启动 HTTP 服务的时候使用

```caharp
var server = Host.CreateDefaultBuilder()
.ConfigureServices(services =>
{
balabala
})
.ConfigureWebHostDefaults(builder =>
{
balabala
})
.Build();

server.Start();
```
Rwing
2020-06-24 08:35:04 +08:00
可以参见这个 sample
https://dotnetfiddle.net/mP4zY8
crclz
2020-06-24 09:03:23 +08:00
新建 Asp.Net Core 项目,然后把 Startup 和 Program 的代码复制过去就行了,顺便复制一下 properties 里面的文件。然后安装一下同样的 nuget 包。你如果要启动一个 http 服务的话,就新建一个线程去运行原来的 program 里面的东西。
kiracyan
2020-06-24 09:42:11 +08:00
最近看到个 AServer 我试了下还挺简易的
tctc4869
2020-06-24 09:49:19 +08:00
@kiracyan 这个我用了,是挺简易的,但它没有类似提供统一请求入站的组件的 aop 方法。
kiracyan
2020-06-24 09:57:45 +08:00
@tctc4869 12 楼的方法应该更适合你
ttyn
2020-06-24 15:15:33 +08:00
CassiniDev4,版本有点老,以前使用的时候可以直接用他启动 asp.net mvc4 的网站,类似于 IIS 了
有 exe 版本直接启动,也有 dll 版本,通过代码启动

https://github.com/grendello/CassiniDev
ruatyy
2020-06-29 13:55:18 +08:00
selfhost 的 webapi 可以在 winform 程序里面运行,应该可以满足你的需求

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/684271

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX