首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将现有的ASP.NET核心Web应用程序转换为运行在Azure IoT边缘上的边缘模块

将现有的ASP.NET核心Web应用程序转换为运行在Azure IoT边缘上的边缘模块
EN

Stack Overflow用户
提问于 2019-06-04 14:48:43
回答 1查看 1.2K关注 0票数 2

我有一个现有的ASP.NET核心Web应用程序作为一个码头容器运行,并希望将其作为运行在Azure IoT边缘上的边缘模块提供。从文档中我知道我可以运行Azure函数、Stream和自定义模块(据我了解,这些模块只是集成到Azure IoT边缘运行时的控制台应用程序)。

将我的ASP.NET核心网络应用程序转换成边缘模块并与边缘集线器交互的最佳方法是什么?

最好的方法是使用自定义模块作为模板,将我的ASP.NET核心项目移到适合文件结构的位置,并编辑ASP.NET核心程序集以运行主程序集?

谢谢你的建议!

更新:我正在遵循上述方法。我创建了一个自定义边缘模块,并尝试使用以下步骤将其转换为最简单的ASP.NET Core:

  1. 添加包引用<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.1" />
  2. 添加启动类 公共类启动{ 公共空配置(IApplicationBuilder app,IHostingEnvironment env,ILoggerFactory loggerFactory) {app.Run(异步r =>等待ILoggerFactory loggerFactory.AddConsole();})
  3. 将此方法添加到Program.cs中: 公共静态IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup();
  4. CreateWebHostBuilder(args).Build().Run();替换Main的内容

我可以将容器作为Azure IoT边缘的一部分启动,但是容器不断地重新启动,所以我假设,我的方法不太正确。不幸的是,我也无法访问容器的控制台,因为它每隔几秒钟就重新启动一次.

sudo船坞ps .

代码语言:javascript
复制
4b23cdad5bc5        localhost:5000/simpleweb:0.0.1-amd64                              
"dotnet SimpleWeb.dll"    5 minutes ago       Restarting (150) 58 seconds ago

..。

PS:我正在使用物联网边缘开发容器进行测试,下面是快速启动:https://github.com/Azure/iotedgedev/wiki/quickstart-with-iot-edge-dev-container

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-04 16:01:09

如果您的应用程序已经被容器化了,那么就不需要添加太多内容了,这样才能使它成为边缘模块:

  • 添加nuget包Microsoft.Azure.Devices.Client
  • Init ModuleClient在代码中的某个位置,可能在某些启动例程中:ModuleClient moduleClient = await ModuleClient.CreateFromEnvironmentAsync(transportType);
  • 使用moduleClient与asp.net一起发送和接收消息
  • 将此容器作为模块添加到您的deployment.json中(并在容器回购中可用)

这应该很简单。您不需要从模块模板或Dockerfile开始。如果你看他们,真的没有魔法发生。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56446293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档