美文网首页
NET MVC接口服务如何运行在容器中

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

作者: 欢醉 | 来源:发表于2023-02-19 08:55 被阅读0次

  有些公司内部存在一些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 . 即可访问这个容器内的站点了,或者重启下整个容器也可以。

相关文章

  • Spring MVC旧项目的日志埋点

    一、HTTP接口切面 web容器和应用容器IoC是Spring框架中的核心概念之一,如果要在Spring MVC中...

  • 一,Spring MVC介绍及环境配置

    一,Spring MVC介绍 一,简介 是spring体系轻量级web mvc框架 基于spring ioc容器运...

  • JavaWeb之Servlet

    概念 Servlet 是服务端的组件,运行在 Servlet 容器中,而 Servlet 容器负责 Servlet...

  • ovn 集成容器

    本文实验如何和容器集成,这里的场景指的是容器运行在vm中,而ovn运行在hypervisor上,可参考ovn-ar...

  • Solr 架构

    运行在java容器中的web application 提供REST-like接口 支持多个Core独立运行 基本操...

  • 学习笔记:AddMvc() 和 AddMvcCore()关系与区

    我们在使用 .NET Core MVC时,需要依赖注入MVC服务,即在 ConfigureServices()方...

  • docker容器性能监控的选择

    写在前面,目前这里仅仅完成了容器性能的监控;如CPU,MEM,DISK,NET; 运行在容器的中应用的监控还未涉及...

  • Servlet简述

    什么是Servlet? Servlet是和平台无关的服务端组件,它运行在Servlet容器中。容器负责Servle...

  • Servlet

    简介:和平台无关的服务端组件,运行在Servlet容器中(本质就是运行在服务器上的java类) 功能:创建并返回基...

  • JavaWeb-Servlet

    Servlet是和平台无关的服务器端组件,运行在Servlet容器中。Servlet容器负责Servlet和客户的...

网友评论

      本文标题:NET MVC接口服务如何运行在容器中

      本文链接:https://www.haomeiwen.com/subject/xirikdtx.html