欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

.NetCore如何部署到CentOS-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關(guān).Net Core如何部署到CentOS的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),道外企業(yè)網(wǎng)站建設(shè),道外品牌網(wǎng)站建設(shè),網(wǎng)站定制,道外網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,道外網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

一、環(huán)境介紹

1、本地使用Visual Studio 2017開發(fā),使用的.NetCore SDK版本為2.1.4;

2、數(shù)據(jù)庫使用的MSSQLServer,部署在阿里云服務(wù)器上,WindowServer;

3、Demo部署在騰訊云服務(wù)器上,CentOS系統(tǒng);

4、CentOS中安裝了.net CoreSDK 2.1.4(開發(fā)和部署的環(huán)境好一致,我在這里掉過坑)

5、代碼管理通過Git來進(jìn)行,在本地安裝了Git,在CentOS中也安裝了Git;

6、利用jexus進(jìn)行反向代理;

二、項(xiàng)目介紹

建立一個(gè)Asp.Net Core項(xiàng)目,這個(gè)建立過程就不貼圖了,步驟簡單。

此處還沒有使用到Docker,建立項(xiàng)目時(shí),沒有勾選Docker支持

.Net Core如何部署到CentOS

整個(gè)項(xiàng)目從搭建到運(yùn)行的簡略過程

.Net Core如何部署到CentOS

1、建立實(shí)體

只加了一個(gè)User類,里面就是基本的用戶名、密碼、地址和創(chuàng)建日期。

public class User
 {
  public User()
  {
   this.CreateDate = DateTime.Now;
  }

  public int Id { get; set; }
  public string UserName { get; set; }
  public string Password { get; set; }
  public string Address { get; set; }
  public DateTime CreateDate { get; set; }
 }

2、接下來是建立DbContext

public class HDShopDbContext:DbContext
 {
  public HDShopDbContext(DbContextOptions<HDShopDbContext> options)
   :base(options)
  {

  }
  protected override void OnModelCreating(ModelBuilder modelBuilder)
  {
   //modelBuilder.Entity<User>().ToTable("xxxx");
  }

  public virtual DbSet<User> User { get; set; }
 }

3、配置服務(wù)

在項(xiàng)目中已經(jīng)默認(rèn)的將EFCore相關(guān)的Nuget包加入進(jìn)來了


在StartUp.cs文件中進(jìn)行服務(wù)配置,使用

services.AddDbContext<HDShopDbContext>(d => d.UseSqlServer(Configuration.GetConnectionString("Default")));

public class Startup
 {
  public Startup(IConfiguration configuration)
  {
   Configuration = configuration;
  }

  public IConfiguration Configuration { get; }

  // This method gets called by the runtime. Use this method to add services to the container.
  public void ConfigureServices(IServiceCollection services)
  {
   services.AddDbContext<HDShopDbContext>(d => d.UseSqlServer(Configuration.GetConnectionString("Default")));
   services.AddMvc();
  }

  // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
  public void Configure(IApplicationBuilder app, IHostingEnvironment env)
  {
   if (env.IsDevelopment())
   {
    app.UseBrowserLink();
    app.UseDeveloperExceptionPage();
   }
   else
   {
    app.UseExceptionHandler("/Home/Error");
   }

   app.UseStaticFiles();

   app.UseMvc(routes =>
   {
    routes.MapRoute(
     name: "default",
     template: "{controller=Home}/{action=Index}/{id?}");
   });
  }
 }

此處,解釋下Configure和ConfigureService的區(qū)別:

Configure配置的是中間件,整個(gè)服務(wù)運(yùn)行過程中,是以中間件形式進(jìn)行跳轉(zhuǎn),從第一個(gè)中間件到第二個(gè)中間件,完成最后一個(gè)中間件要求后返回到上一個(gè)中間件,而中間件數(shù)量的多少是我們可以去控制的,如果有什么功能需要加入,我們也可以以中間件的形式控制運(yùn)行,Configure方法即時(shí)控制中間件的。

ConfigureService配置的是整個(gè)運(yùn)行中所用到的各種框架,注入等等,在Configure方法前先被調(diào)用。

具體可看@行動派Xdpie

.Net Core如何部署到CentOS

在appsetting.json中配置連接字符串,由于Linux中不能安裝SQLServer除2017以外的其他版本我便將另一臺WindowServer服務(wù)器數(shù)據(jù)庫弄過來用了,SQLServer2017對于Linux服務(wù)器配置要求很高,我等小平民傷不起,哈哈。

.Net Core如何部署到CentOS

記得連接字符串名字不要弄錯(cuò)了 ! ! !

4、為了方便讓EFCore的CodeFirst在我們部署完,啟動后就自動創(chuàng)建數(shù)據(jù)庫,我們準(zhǔn)備點(diǎn)種子數(shù)據(jù)

public class DbInitializer
 {
  public static void Initialize(HDShopDbContext context)
  {
   context.Database.EnsureCreated();
   if (context.User.Any())
   {
    return;
   }
   var users = new User[]
   {
    new User(){Address="測試",UserName ="1測試1",Password="123456"},
    new User(){Address="測試",UserName ="2測試2",Password="123456"},
    new User(){Address="測試",UserName ="3測試3",Password="123456"},
    new User(){Address="測試",UserName ="4測試4",Password="123456"},
    new User(){Address="測試",UserName ="5測試5",Password="123456"},
    new User(){Address="測試",UserName ="6測試6",Password="123456"},
   };
   foreach (var user in users)
   {
    context.Add(user);
   }
   context.SaveChanges();
  }
 }

5、編譯運(yùn)行,測試下本地運(yùn)行是否成功。我這就不將我的測試結(jié)果展示出來了。

6、進(jìn)入Linux服務(wù)器,下載好Git,通過配置好SSH公鑰,在GitHub或是碼云上做個(gè)記錄。(我還是習(xí)慣用碼云,畢竟?jié)h字多 哈哈)

Linux服務(wù)器上配置Gti的教程

7、Linux服務(wù)器安裝jexus,通過如下命令安裝

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

安裝成功后會提示:OK, Jexus has been installed in /usr/jexus.

至此,作為反向代理的jexus安裝完畢,以前需要安裝jexus+mono,現(xiàn)在新版本的jexus已經(jīng)將mono合并進(jìn)去了,形成了現(xiàn)在的jexus獨(dú)立版.

8、安裝.Net Core環(huán)境

我的建議是先查看開發(fā)環(huán)境的.Net Core SDK版本,不然如果服務(wù)器上的環(huán)境和開發(fā)環(huán)境存在版本差異的話會出現(xiàn)一些坑,比如我遇到的一個(gè)坑

Error:
  An assembly specified in the application dependencies manifest ({projectName}.deps.json) was not found:
    package: 'Microsoft.AspNetCore.Antiforgery', version: '2.0.2'
    path: 'lib/netstandard2.0/Microsoft.AspNetCore.Antiforgery.dll'
  This assembly was expected to be in the local runtime store as the application was published using the following target manifest files:
    aspnetcore-store-2.0.5.xml

在我安裝服務(wù)器的SDK的時(shí)候選擇的是2.1.3版本,而我的開發(fā)環(huán)境是2.1.4版本,結(jié)果就出錯(cuò)了,弄了一陣子沒搞好這個(gè)原因,同樣就是這個(gè)原因,使得我從Git上pull下來的項(xiàng)目,雖然發(fā)布成功了,但是部署的話是不能夠正常訪問的,同時(shí)通過dotnet /xxx/xxx/xx.dll進(jìn)行測試會一直出現(xiàn)這個(gè)錯(cuò)誤。

最后通過干掉已有的版本,獲得新的版本,同樣,我也在這里有個(gè)問題,貌似沒得更新SDK版本的指令吧?我沒有找到,抱歉,如有,請聯(lián)系我,謝謝。

通過命令,干掉舊版的CLI,同時(shí)下載新版的SDK搞定,成功運(yùn)行起來了。

rm -rf /usr/share/dotnet 刪除舊版cli

下面是我的安裝.Net Core的指令

1、配置dotnet產(chǎn)品Feed

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[packages-microsoft-com-prod]
name=packages-microsoft-com-prod 
baseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'

2、安裝SDK,注意版本?。?!

sudo yum update
sudo yum -y install libunwind libicu
sudo yum install dotnet-sdk-2.1.4

至此環(huán)境便已經(jīng)搭建好了。

三、部署過程

通過Git將碼云或是Github上的項(xiàng)目Pull下來,好現(xiàn)在服務(wù)器上指定好Git路徑

比如我的建立一個(gè)專門放置項(xiàng)目的文件夾,其中對每一個(gè)需要Clone到本地的項(xiàng)目建立一個(gè)文件夾,可以讓我思路比較清晰。或許,你有更好的方式,也可以使用。

.Net Core如何部署到CentOS

通過建立完畢運(yùn)行指令

git clone 你項(xiàng)目的SSH地址

我們可以利用其他dotnet的指令進(jìn)行一些操作了

具體需要什么指令可以通過dotnet --help進(jìn)行獲得

查看下文件夾中的內(nèi)容

.Net Core如何部署到CentOS

可以通過指令dotnet run 將項(xiàng)目進(jìn)行啟動

.Net Core如何部署到CentOS

此處會發(fā)現(xiàn),我們不能干什么事情了,

只能按Ctrl + C讓服務(wù)停下來,我們可以將當(dāng)前這個(gè)程序作為后臺程序運(yùn)行,具體的操作就是Ctrl +Z將服務(wù)暫停

然后通過指令bg將其設(shè)為后臺進(jìn)程,如果想要進(jìn)入已有的后臺進(jìn)程通過指令 fg

如果我們是只在命令行里操作的話,又看不到頁面,又不能通過外網(wǎng)訪問,

又想要確保網(wǎng)站是否真的運(yùn)行成功了,我們可以通過指令來查看網(wǎng)站的首頁信息

curl localhost:65758

將返回網(wǎng)站的html信息

具體更多的linux下http指令請參照Linux curl命令詳解

我們可以發(fā)布了,通過指令dotnet build將項(xiàng)目再次編譯一下

然后通過dotnet publish -o /xxxx/xxxx 將項(xiàng)目發(fā)布到指定文件夾

接下來,可以開始配置jexus了.

/// 1、切換到Jexus配置文件目錄
cd /usr/jexus/siteconf
/// 2、復(fù)制默認(rèn)的配置文件為HDShop
cp default HDShop
vi HDShop

######################
# Web Site: HDShop
########################################
port=9527
root=/ /var/www/HDShop
hosts= * #OR your.com,*.your.com

AppHost={CmdLine=dotnet /var/www/HDShop/HDShop.dll;AppRoot=/var/www/HDShop/;Port=0}

至此,需要的所有準(zhǔn)備工作已經(jīng)做好,

通過jexus的命令來啟動服務(wù)

/// 如果已啟動 Jexus:
sh /usr/jexus/jws restart

/// 如果未啟動 Jexus:
sh /usr/jexus/jws start

jexus的命令大全可以參照:Jexus-5.6.3使用詳解

此時(shí)通過外網(wǎng)輸入ip地址或域名(如果有的話)+端口(我寫的不是默認(rèn)80端口而是9527端口)

.Net Core如何部署到CentOS

網(wǎng)站正常啟動,成功讀到阿里云上那臺數(shù)據(jù)庫服務(wù)器的數(shù)據(jù),同時(shí)也進(jìn)行增刪改成功了。

至此,嘗試結(jié)束,其中還有許多的其他部分沒有說明進(jìn)來,

比如說Docker,我是使用了Docker的,但在寫的部分中并沒涉及Docker,因?yàn)槲易约喊l(fā)現(xiàn)一些邏輯繞不過去,具體問題見下一章。

還有也嘗試了想要用圖形界面操控Linux服務(wù)器并且遠(yuǎn)程操控,專門下了GNOME和TigerVNC,發(fā)現(xiàn)很卡,卡到心累,便不再使用,直接在命令行中進(jìn)行所有工作。

同時(shí),對于Window下的項(xiàng)目怎么移動到Linux上,其實(shí)還有很多種方式,比如FTP等等,這個(gè)可以從度娘獲知。我比較喜歡Git這種方式。

四、后續(xù)問題

此次沒有配合Docker容器一起使用,下一次將會帶來Docker容器

1、引入Docker容器,實(shí)現(xiàn)服務(wù)部署于容器中,通過外網(wǎng)訪問可以訪問到Docker容器中的網(wǎng)站。

2、項(xiàng)目還沒有加入Dockerfile文件,此次都是通過手工去部署的,下一次將使用Dockerfile進(jìn)行服務(wù)部署。

3、域名綁定還沒有嘗試。

但是還有一些問題沒有解決

1、jexus配合Docker使用使用,但是遇到點(diǎn)問題還需解決。

比如:目前來講,我將網(wǎng)站直接發(fā)布好了,那么我就不需要指令dotnet run 讓其自運(yùn)行自偵聽了,那么全是依靠的jexus的代理。

這么一來,Docker容器中運(yùn)行服務(wù)那是什么意思呢?我暫時(shí)還不能理解。同時(shí)如果說Docker容器中運(yùn)行網(wǎng)站,那么是由網(wǎng)站本身自偵聽還是由容器中的jexus進(jìn)行代理呢?

2、端口映射問題,主機(jī)端口和Docker容器中端口映射問題。

3、Docker容器間訪問設(shè)置

感謝各位的閱讀!關(guān)于“.Net Core如何部署到CentOS”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

網(wǎng)站欄目:.NetCore如何部署到CentOS-創(chuàng)新互聯(lián)
文章路徑:http://chinadenli.net/article18/cepcgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、網(wǎng)站制作微信小程序、標(biāo)簽優(yōu)化、靜態(tài)網(wǎng)站、網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
中文字幕欧美视频二区| 99热九九在线中文字幕| 国产精品一区二区高潮| 日本免费一本一二区三区| 精品午夜福利无人区乱码| 香港国产三级久久精品三级| 成人你懂的在线免费视频| 欧美不卡高清一区二区三区| 欧美在线观看视频三区| 国产精品一区二区三区激情| 久久精品a毛片看国产成人| 高清一区二区三区不卡免费| 亚洲一区二区久久观看| 日韩人妻免费视频一专区| 麻豆剧果冻传媒一二三区| 欧美日韩亚洲精品内裤| 亚洲天堂久久精品成人| 91偷拍裸体一区二区三区| 国产综合欧美日韩在线精品| 国产精品一区二区三区欧美| 久久综合日韩精品免费观看 | 欧美小黄片在线一级观看| 免费观看潮喷到高潮大叫| 大香蕉久久精品一区二区字幕| 国产一区二区三区口爆在线| 91福利视频日本免费看看 | 91欧美一区二区三区| 青青操在线视频精品视频| 一区二区日本一区二区欧美| 中文字幕无线码一区欧美| 国产免费人成视频尤物| 夜色福利久久精品福利| 亚洲欧美黑人一区二区 | 91人妻人澡人人爽人人精品 | 国产精品成人一区二区在线| 91精品国产品国语在线不卡| 久久黄片免费播放大全 | 91欧美日韩中在线视频| 亚洲日本加勒比在线播放| 空之色水之色在线播放| 九九热这里只有精品哦|