2021最新老项目asp.net mvc网站部署Jexus指南(躺坑记)

最近工作中一直在做将asp.net mvc网站部署Jexus上,解决一些来自客户的要求,因为项目是asp.net webform和asp.net mvc混合的网站组成,因此在将网站从Windows IIS服务器迁移到 Centos Jexus上遇到了不是的坑,总之是一个一个的躺平了。

最近工作中一直在做将asp.net mvc网站部署Jexus上,解决一些来自客户的要求,因为项目是asp.net webform和asp.net mvc混合的网站组成,因此在将网站从Windows IIS服务器迁移到 Centos Jexus上遇到了不少的坑,总之是一个一个的躺平了。

在开始之前需要将Centos服务器安装好,因Centos服务器各种管理操作都是使用的命令行(终端)来执行,为了更方便的管理Centos服务器,可以安装宝塔面板进行服务器管理操作。

安装宝塔面板

宝塔面板是一款管理Linux服务器的可视化web面板,安装该面板后可以直接在浏览器上完成服务器的管理工作,例如网站部署,数据库安装,端口开放或禁用,定时任务,备份,文件管理等等。

宝塔官网:www.bt.cn

首次使用时,通过 putty 等客户端使用root账户登录Centos服务器(其它服务器类似,如Ubuntu、Debian等),然后执行如下命令安装即可:

Centos安装脚本

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

Ubuntu/Deepin安装脚本

wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

Debian安装脚本

wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh

Fedora安装脚本

wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh

注意:必须为没装过其它环境如Apache/Nginx/php/MySQL的新系统,推荐使用centos 8.X的系统安装宝塔面板

宝塔安装完毕后,在最后的提示文字里面有宝塔的登录入口地址,用户名,密码等信息需要记录下来,直接复制下来保存即可,用户名,密码这些信息可以在宝塔面板里面修改。如果忘记用户名密码等信息,请使用SSH(如putty)登录服务器,执行如下命令就可以看到登录地址,用户名,密码等信息。

查看宝塔登录入口,用户名,密码命令: /etc/init.d/bt default

find-bt-password
asp.net mvc网站部署Jexus

Jexus安装

Jexus 安装最新版即可,需要注意的是,安装Jexus需要区分X86_64系统和ARM64系统,像有些云服务器,可能使用的是ARM64系统,因此需要注意。安装Jexus时,执行如下命令:

X86_64系统

安装jexus独立版的命令是:

curl https://jexus.org/release/x64/install.sh|sh

ARM64系统

安装jexus独立版的命令是:

curl https://jexus.org/release/arm64/install.sh|sh

MVC网站部署注意事项

asp.net webform网站,asp.net mvc网站原本是不能跨平台部署的,在上一个步骤中安装的Jexus是自带Linux mono 运行时来支持.net程序,因此就可以将.net 开发的网站程序部署到 Linux服务器上,但需要注意的是,Mono不支持最新的.net 环境,需要降级编译发布。经过测试尤其是mvc的引用类库需要注意不能使用最新版本,具体能使用的引用类库和版本如下:

MVC引用库版本

  1. System.Net.Http.Formatting—-5.2.4
  2. System.Web.Mvc—-5.2.4
  3. System.Web.Http—-5.2.4
  4. System.Web.WebPages.Razor—-3.0.0

其它需要注意的事项

  1. URL地址(路由)、静态资源地址严格区分大小写
  2. 不支持虚拟目录下套应用程序(后面单独另说)
  3. 文件路径按 Linux的来,不支持Win路径如 “D:\”

配置文件更新

system.web配置节点更新,解决System.Net.Http的问题。

<compilation debug="true" targetFramework="4.7.2">
      <assemblies>
        <add assembly="System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
      </assemblies>
</compilation>

虚拟目录下套应用程序

在Windows服务器,部署网站可以虚拟目录下面嵌套应用程序,如下图那样部署:

iis-web-application
asp.net mvc网站部署Jexus

上图中的uploadserver做为一个应用程序嵌套到service这个虚拟目录里面的,如果要访问uploadserver里面的页面,请求地址为:
https://jhrs.com/service/uploadserver

当将uploadserver部署到Jexus之后,如果还是保持着 /service/uploadserver 这种链接样式后,再加上这个网站是使用的 asp.net mvc开发的,会出现不能正确定位网站根目录的问题从而报System.InvalidOperationException错误。如下图所示:

最新老项目asp.net mvc网站部署Jexus指南
Jexus部署wep.net webform网站

解决这个问题需要从两个方面着手:
第一:在 Jexus的siteconf文件里面配置网站是,不要配置 二级或叫两段路径,下图是原来的配置。

最新老项目asp.net mvc网站部署Jexus指南

只需要将上图的配置修改为一级或一段路径即可。如下图所示:

最新老项目asp.net mvc网站部署Jexus指南

第二:配置反向代理,在Jexus的siteconf找到root文件进行修改,添加如下图所示的节点进行反向代理即可。
reproxy=/service/uploadserver https://jhrs.com/uploadserver

左边的 reproxy=/service/uploadserver 就是表明当请求的地址匹配 https://jhrs.com/service/uploadserver 时,实际上对于服务器来说是反向代理请求的 https://jhrs.com/uploadserver 这个地址,如果你会配置 nginx 反向代理,这点不难理解。

最新老项目asp.net mvc网站部署Jexus指南

通过反向代理就可以保持和迁移前的URL地址一样,这样就不需要修改任何代码保持请求接口或者URL一致。

webform部署注意事项

最近终于完成了webform网站的迁到工作,除了注意所有资源大小写问题之外(URL大小写),就是程序中的bug修复和兼容处理。

将asp.net webform网站部署到centos系统上,需要借助 jexus服务器,在实际操作过程中,网站的发布我是直接通过FTP来发布的,大致步骤如下:

第一:宝塔面板里面安装Pure-Ftpd,即先安装上FTP服务。

第二:创建FTP账号,将FTP目录指向到网站目录,这里需要注意的是,如果你的网站在原IIS部署使用了虚拟目录,或者主站下面套独立的应用程序方式部署的话,在Visual Studio里面配置FTP发布时,FTP站点路径按照路径层次配置即可。下面来图说明:

2021最新老项目asp.net mvc网站部署Jexus指南(躺坑记) 1

例如在IIS上,jhrs.com主站下面建了一个虚拟目录 rzjh(人在江湖),然后又在rzjh(人在江湖)下面建立了一个mnjh(美女江湖)的应用程序,对应的访问地址是:https://jhrs.com/rzjh/mnjh

Visual Studio发布配置步骤如下:

2021最新老项目asp.net mvc网站部署Jexus指南(躺坑记) 2
2021最新老项目asp.net mvc网站部署Jexus指南(躺坑记) 3

配置完了之后,再点击配置,如下图所示那样,可以验证一下是否与FTP连接成功。

2021最新老项目asp.net mvc网站部署Jexus指南(躺坑记) 4

接下来再点击设置tab,如下图那样。

2021最新老项目asp.net mvc网站部署Jexus指南(躺坑记) 5

通过这样配置 ,就可以直接在 VS里面将asp.net webform网站通过FTP发布到Centos上面了,省去了通过客户端来复制文件麻烦事,对于几十个网站要发布部署到centos上面,这种方式在开发阶段还是比较方便的,当然你可能会说使用持续集成工具来自动发布,也是可以做的。

有的时候配置好FTP发布时,当你点击发布时会出现FTP发布出错,得到如下提示

FTP 发布时报错,无法将“bin/jhrs.com.dll”添加到网站。 Ready to proceed (200)

解决办法就是:1、将发布配置删除,重新创建一个。2、检查FTP目录权限,你可以直接给 777 权限,即读写权限都给。直接在宝塔面板里面设置相应目录权限即可,当然也可以使用命令:chmod -R 777 /www/jhrs.com,直接给jhrs.com目录设置权限全开。改为777表示对于该用户、用户组内其他用户、其他用户都可以读写及执行,属于权限全开。

宝塔面板设置目录权限
宝塔面板设置目录权限
User Review
0 (0 votes)

猜你喜欢

本站最新优惠

Namesilo优惠:新用户省 $1 域名注册-优惠码:45D%UYTcxYuCloZ 国外最便宜域名!点击了解更多

特别优惠:免费赠送 $100 Vultr主机-限时优惠!英文站必备海外服务器!点击了解更多

VPS优惠:搬瓦工优惠码:BWH3OGRI2BMW 最高省5.83%打开外面世界的一款主机点击了解更多

Paxful上购买比特币

【jhrs.com】本文来自投稿作者:IT菜鸟,不代表江湖人士立场,如若转载,请注明出处:https://jhrs.com/2021/43582.html

扫码注册Paxful账户开始交易比特币,全球300多种支付方式任意选,国内需使用外网工具打开

必备的解锁外网工具,畅访谷歌等国外网站,几包烟钱让你无须再找免费梯

发表评论

登录后才能评论
Namecheap注册com域名大优惠,抢到就赚到,优惠码:NEWCOM598,9月30日截止
$5.98
直达官网