1. EmbedIO 是什么?为什么选择它?
在物联网和边缘计算场景中,我们经常需要在资源受限的设备上运行轻量级Web服务。传统IIS或Kestrel对于树莓派这类设备来说太过"沉重",而EmbedIO恰恰填补了这个空白。作为一个不足1MB的.NET Standard库,它能直接在进程中托管Web服务器,无需依赖IIS等外部服务。
我去年在一个工业传感器项目中首次使用EmbedIO v3,当时需要在ARM架构的工控机上提供REST API。相比其他方案,EmbedIO的启动时间缩短了80%,内存占用控制在20MB以内。它的模块化设计尤其让我印象深刻 - 就像乐高积木一样,可以按需组合WebAPI、静态文件、WebSocket等功能模块。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与基础配置
2.1 项目创建与包引用
首先用VS2022新建一个.NET 6控制台项目,通过NuGet安装最新版:
bash复制Install-Package EmbedIO -Version 3.0.0
注意:EmbedIO v3需要.NET Standard 2.1+,对应.NET Core 3.0+或.NET 5+运行时
2.2 最小化示例代码
下面是一个最简单的Web服务器实现:
csharp复制using EmbedIO;
using EmbedIO.WebApi;
class Program
{
static void Main()
{
var url = "http://localhost:9696/";
// 创建服务器
using var server = new WebServer(o => o
.WithUrlPrefix(url)
.WithMode(HttpListenerMode.Microsoft));
// 添加Web API模块
server.WithWebApi("/api", m =>
m.WithController<SampleController>());
