WASI代表 WebAssembly 系统接口,WASI 让沙盒化的 WebAssembly 应用程序通过一系列类似 POSIX 的函数访问底层操作系统,允许独立于浏览器运行 WebAssembly 代码。这是一个高度实验性的项目,但同时也是一个非常有趣的项目,并且有可能为行业的大规模编程范式转变做出贡献,使 WebAssembly 真正无处不在。

微软的 Steve Sanderson 最近发布了.NET 的实验性WASI SDK for .NET的第一个版本,它允许将 .NET 7 和 ASP.NET Core 应用程序 构建为独立的 WASI 兼容应用程序,并从 WASI 主机运行它们。Steve 的 repo 提供了在 Windows 和 Linux 上使用的简单步骤.

我们首先要安装 .NET 7 SDK。最新的是预览7.0.100-preview.2并不能运行, Steve 提交了有个PR https://github.com/dotnet/aspnetcore/pull/40376 需要 7.0.100-preview.4以上版本修复,运行时方面的相关 PR 可以在https://github.com/dotnet/runtime/pull/67036 找到 ,考虑到所有因素,因为它已经修复,只是不是“正式可用”,所以最好的办法是从每日构建版本https://github.com/dotnet/installer/blob/main/README.md#installers-and-binaries 安装适用于对应操作系统的SDK,比如Windows的最新稳定版本是 https://aka.ms/dotnet/7.0.1xx/daily/dotnet-sdk-win-x64.exe,例如,我今天安装的当前可用版本是7.0.100-preview.4.22201.11。

我们创建一个常规的基本 ASP.NET Core Web 应用程序。

dotnet new web

项目创建后,需要添加以下包引用才能引入实验 Wasi.Sdk以及 Steve 构建的相应 ASP.NET Core 服务器实现:

<ItemGroup>

<PackageReference Include="Wasi.AspNetCore.Server.Native" Version="0.1.0" />

<PackageReference Include="Wasi.Sdk" Version="0.1.0" />

</ItemGroup>

除此之外,main PropertyGroup 下的一个额外属性 ,一个与您的应用程序使用的端口 在launchSettings.json 相对应的端口:

<WasiRunnerArgs>--tcplisten localhost:5100 --env ASPNETCORE_URLS=http://localhost:5100</WasiRunnerArgs>

由于我们的应用程序需要从 WASI 主机内部侦听网络接口,因此需要在生成的代码中进行额外的更改,即需要添加WasiConnectionListener() 到默认值WebApplication 构建者:

var builder = WebApplication.CreateBuilder(args).UseWasiConnectionListener();

此时应用程序将正确构建,但它还无法运行,因为我们还需要有 WASI 主机可供我们使用。

为了运行这个基于 WASI 的应用程序,我们需要一个 WASI 运行时。一个优秀的轻量级运行时是wasmtime,它恰好是这个实验使用的那个Wasi.Sdk ,我们需要 它在 PATH 上可用。

我们应该能够运行应用程序:

打开浏览器访问 http://localhost:5100/ ,我们现在应该在其中看到我们的 hello world。以一种非常壮观的方式,我们现在有一个在 WASI 运行时中作为 WebAssembly 应用程序运行的ASP.NET Core应用程序 ,并且可以从浏览器访问。

在 WASI 上运行 .NET 7 应用程序相关推荐

  1. node aws 内存溢出_在AWS Elastic Beanstalk上运行生产Node应用程序的现实

    node aws 内存溢出 by Jared Nutt 贾里德·努特(Jared Nutt) 在AWS Elastic Beanstalk上运行生产Node应用程序的现实 (The reality o ...

  2. Centos7笔记之Docker-ce上运行ASP.NET CORE程序

    一.目标 centos7.6下Docker-ce上运行ASP.NET CORE程序 二.平台 [root@hiibm ~]# uname -r 3.10.0-957.el7.x86_64 [root@ ...

  3. 在XP系统上运行win7 sp1 ADO程序 800401f3 GetLastError 14000 Error_sxs_section_not_found

    http://m.blog.csdn.net/blog/u012782049/42023715# [转]在XP系统上运行ADO程序. 2014-12-19阅读160 评论0 出现的问题:在WIN7下开 ...

  4. 无法配置在此计算机的硬件上运行6,“Windows安装程序无法将Windows配置未在此计算机的硬件上运行”解决方案 | 秋收稻田...

    夜已深,奋战13小时的系统安装问题终于解决了.考虑到Windows 7 系统已发布很长时间了,现在微软已推出win 10, 然而MSDN却没有发布更新的Windows 7 系统镜像出来.继XP系统之后 ...

  5. 在64位操作系统上运行32位的程序

    运行 32 位程序 WOW64 子系统使 32 位程序能够在基于 x64 版本的 Windows Server 2003 和 Windows XP 专业 x64 版的运行而不用修改.WOW64 子系统 ...

  6. 如何在Android上运行C和C++程序

    目录) 摘要 安装termux并更换下载源 使用vim进行编辑 编译与运行 声明: 摘要 摘要:C/C++是一门高级程序设计语言,本文将着重介绍如何在安卓手机上使用termux来编译并运行C和C++程 ...

  7. 解决在高分屏电脑上运行Photoshop CS6,程序界面字体过小的问题

    近日见有人在网上求助:Photoshop之类的软件在高分屏电脑上运行,其标题栏字体过小,令人眼瞎.咋破? 俺在surfacebook里(屏幕分辨率为3000X2000)装上Photoshop,运行观察 ...

  8. springboot配置连接rds_java – 在AWS-EC2上运行的SpringBoot应用程序无法连接到MySQL AWS-RDS数据库...

    我在运行我在EC2实例中开发的应用程序时遇到问题.当我执行.jar(java -jar app.jar)时,SpringBoot应用程序启动但尝试连接到我的MySQL RDS数据库时失败.问题是当我在 ...

  9. 【原】解决VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题...

    --更新于2011/4/19,针对最新的VS2008补丁,VS2005/2010同样适用. VC9编译的程序在没有装过VC9(确切的说是.Net Framework3.5)的机器上运行时,如果提示&q ...

最新文章

  1. 8位图像的双边滤波器实现
  2. ASP.NET 2.0用户管理数据库的注册
  3. python下异常处理
  4. python元组的定义方式_序列之元组详解
  5. pdb连接数_CDB与PDB的连接-阿里云开发者社区
  6. 在外企必会的10个英文单词 (Ten words you must mastered for foreign company employee)
  7. InfoComm China 2016“全球新产品发布活动” —— 汇聚众多革新设备及技术
  8. Haclon 一些关于显示的基本算子(1)
  9. WPF内嵌WCF服务对外提供接口
  10. Linux操作系统中pkg-config用法示例
  11. 又被腾讯刷屏!果然是印钞机.....酸哭了...
  12. 基于VB.Net的FTP操作的类(可以显示进度条)
  13. 4071 国际象棋(枚举)
  14. 中级微观经济学笔记整理
  15. 多关键词匹配个人解决方案
  16. 手环android app demo,【智能手环APP for Android 】01 百度map展示行动轨迹
  17. linux下.txt文件名乱码,Linux下打开txt文件乱码问题解决方案
  18. 艾司博讯:拼多多判断正品的标准是什么
  19. python免费自学资源(视频+图文)
  20. 基于vc的数字图像分割——基于阙值的分割方法

热门文章

  1. Chrome DevTools — Network 1
  2. Django学习笔记(4)
  3. 全球增长最快域名解析商Top10:中国占据四席
  4. 解决 同时安装 python3,python2环境时,用pip安装 python3 包
  5. Excel VBA - Workbook对象
  6. Android 控件之RatingBar评分条
  7. SEO | 重新认识一下Meta标签
  8. redis下并发问题解决方案
  9. war部署到tomcat
  10. 斜率优化(CDQ分治,Splay平衡树):BZOJ 1492: [NOI2007]货币兑换Cash