前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NET MVC接口服务如何运行在容器中

NET MVC接口服务如何运行在容器中

作者头像
欢醉
发布2023-03-01 14:02:59
9690
发布2023-03-01 14:02:59
举报
文章被收录于专栏:james大数据架构james大数据架构

  有些公司内部存在一些NET项目,而公司服务器后期都换成了Linux,若单纯为这一个项目占用一台Windows服务器显得极其浪费,因此需要将NET项目嵌入到Linux服务器中,为了后期方便迁移和运维最好是Docker容器中运行。 

  新的.net core都已经支持docker,手头有一些原来开发的asp.net旧项目,用的asp.net mvc开发的,跑在.net formwork 4.6上。

  我们的web项目要想运行,需要有一个像IIS一种的服务器组件,在这里有两层意思:

1.Net接口服务运行在Linux系统上 2.Net接口服务打包成镜像运行在Docker容器中

Net接口服务运行在Linux系统上

  在linux里我们一般使用jexus来实现这个功能,用docker镜像的话应该有mono还要有jexus的基础镜像集成,也可以使用现成的镜像azraelrabbit/monupw。

  Mono包含了一个C#语言的编译器,一个CLR的运行时和一组类库,并且实现了ADO.NET和ASP.NET,能够使的开发人员在Linux下用C#开发程序。

  Jexus即Jexus Web Server,简称JWS是在linux平台上的一款ASP.NET WEB服务器,Jexus并非全部由mono的.NET组件构成,非常巧妙的大量采用了Linux/Unix本身的优秀特性,从代码层面保证了Jexus的性能优势,同时Jexus的框架特征也为 高性能提供了基础保证。

  需要注意的是Mono需要配置GDI+兼容API的库Libgdiplus。

yum -y install gcc gcc-c++ bison pkgconfig glib2-devel gettext make libpng-devel libjpeg-devel libtiff-devel libexif-devel giflib-devel libX11-devel freetype-devel fontconfig-devel  cairo-devel

备注:可能电脑已经安装了这些文件,可用rpm -qa libexif*命令查看,但是这里为了确保万无一失,直接全部执行。

  如何安装Mono和Jexus请参考其他园友写的比较仔细的教程。

部署ASP.NET MVC项目

  jexus安装的路径下/usr/jexus下有一个siteconf文件夹,这里面的每一个文件都 是一个网站的配置文件,每一个配置文件就代表一个网站,在(/usr/jexus/siteconf/)中,就已经有一个默认的网站配置文件,文件名 为:"default";你可以修改这个配置文件,也可以将这个配置文件赋值并修改为一个新的站点,更改端口、发布文件虚拟根路径。

  将编译的文件上传至此目录。

  重新启动Jexus就可以通过ip端口访问,还要注意端口是否被防火墙拦截,需要放开或关闭防火墙。

注意: 桌面的net程序是无法通过此方式使用的,会异常。 Linux下是区分大小写的。

Docker部署asp.net mvc站点

  用Docker部署net程序相对容易得多,首先需要Docker环境,这个不用说,再拉取已经内建了mono 和jexus 服务器的 docker镜像 

docker pull azraelrabbit/monupw

  运行一个端点,启动对应的服务端口22: sshd, 80: jexus,ssh工具连接主机的 2022 端口,即可连接到这个已启动的容器内,2080主机端口为映射的站点端口。

docker run --name cmsnet -d -p 2022:22 -p 2080:80 -v /mydata:/data azraelrabbit/monupw

  将你的mvc工程或asp.net工程复制到 /mydata路径下. 并在ssh到容器里用sudo 重启一下jws . 即可访问这个容器内的站点了,或者重启下整个容器也可以。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-02-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Net接口服务运行在Linux系统上
  • Docker部署asp.net mvc站点
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档