在阿里云windows server2016服务器上搭建.net core部署 实现

在阿里云windows server2016服务器上搭建.net core部署 实现

**

发布:

**
在完成.net core项目之后右击解决方案选择发布
选择文件系统发布,发布到一个publish文件夹。如果有错误自行排查错误。

**

搭建mysql 5.7

**

	一开始是准备在阿里云的服务器上安装docker然后把数据库全部放入docker中进行搭建的,
	在搭建的过程中才发现阿里云的服务器本身就是虚拟的所以不能在运行docker中的虚拟环境
	,也就是CPU不支持2次虚拟化所以放弃了这个思路(如果有大神有办法请留言。),
	然后就是正常的到oracle mysql 下载mysql 5.7的zip安装包,也可以下载(这里给出
	下载地址5.7的

https://dev.mysql.com/downloads/mysql/5.7.html#downloads

),然后下载安装包后放入服务器的自己的一个文件夹中。开始mysql的安装,首先是配置文件
创建一个my.ini文件在里面写上(这一步网上有很多种办法)
		[mysql]
		# 设置mysql客户端默认字符集
		default-character-set=utf8
		[mysqld]
		#设置3306端口
		port = 3306
		# 设置mysql的安装目录
		basedir=D:\mysql5.7
		# 设置mysql数据库的数据的存放目录
		datadir=D:\mysql5.7\data
		# 允许最大连接数
		max_connections=200
		# 服务端使用的字符集默认为8比特编码的latin1字符集
		character-set-server=utf8
		# 创建新表时将使用的默认存储引擎
		default-storage-engine=INNODB
datadir 这个配置的文件夹不需要创建 安装的时候会自动创建的,如果创建了反而不好。
然后可以开始安装。
  1. 用管理员的身份打开cmd.exe

  2. mysqld --initialize --console 到mysql的解压目录下的bin目录下。运行这个命令这个是帮你初始化mysql同时就会帮你创建那个data的文件夹。然后后面的–console是为了在控制台输出信息。

  3. mysqld -install 安装mysql 成功的 会提示成功的

  4. 然后是运行mysql的服务 net start mysql 如果出现问题请看我这篇博客

    https://blog.csdn.net/koloumi/article/details/83117497

  5. 进入mysql 第一次进入是不需要密码的直接进去,进去之后修改密码

  6. update user set authentication_string=password(‘root’) where user=‘root’ and Host = ‘localhost’; 修改密码的语句 后续必须加上 flush privileges;进行保存。

**

搭建redis

**

  1. 下载redis的 zip https://redis.io/download
  2. 解压到服务器自己的目录,正常的来说一般解压好后可以直接使用
  3. 然后发现只能本地使用外部链接不上,这时候需要配置redis.windows.conf这个文件打开,注释掉bind 127.0.0.1 还是不够的 还需要吧protected-mode yes 改为protected-mode no 才可以让外部访问
  4. 然后就可以连接redis了,当然还需要开启redis的服务.\redis-server.exe .\redis.windows.conf 如果外部还是无法访问 吧 redis.windows-server.conf做上面同样修改.

**

阿里云安全组规则上配置规则

**

	找到你的实例服务器然后

在阿里云windows server2016服务器上搭建.net core部署 实现

配置安全组规则在 入方向添加一个 你2个数据库和你之后的网站所需要的端口。

**

安装iis

**

  1. 打开服务管理器,添加角色功能
  2. 基于角色或基于功能的安装然后一直下一步到在阿里云windows server2016服务器上搭建.net core部署 实现
    勾选web服务器iis,然后下一步选着全部的iis相关免得到时候遗漏。
  3. 然后一直下一步安装结束。

安装.net core sdk 和 .net AspNetCore Module

 下载地址

https://www.baidu.com/link?url=xIvzBWGEurFCVkgd9xB3TEginCUcju89cg-SpMl4QnZbz-Iqk8sH3ql2B9zd7gCu&wd=&eqid=fd515dc400006013000000065bd13006

然后直接安装
另一个就是里面的.net core runtime 版本最好对应下载。不然会有版本问题,还有一个严重的问题这里必须要提一下不然后期发布的时候会一直导致访问 502,就是如果你的发布的.net core项目是2.1一下的时候 那么服务器上安装的sdk也必须是2.1一下的,这里的坑是什么呢,就是2.1一下的sdk中有个默认的依赖是关于Azure的,当然我们不发布到Azure上所以用不到但是2.1之后就没有这个默认了,所以当你吧2.1一下的.net core项目发布到安装有2.1sdk以及以上的服务器上的时候就会发现运行不起来其实主要原因就是这个。

部署.net core 网站

  1. 打开服务器上的iis管理器然后再应用程序池创建一个netcore 应用程序并且启动在阿里云windows server2016服务器上搭建.net core部署 实现
    必须要注意的是 .net clr必须要 选中无托管代码
  2. 然后再网站这边添加网站,添加网站的时候需要选中应用程序池这个时候就需要选中我们刚才创建的那个应用程序池,然后把物理路径选中 拷贝过来的发布文件夹。填写好端口就可以确定了。
  3. 还需要确认一个东西,那就是打开iis的模块看下 模块里面有没有模块:AspNetCoreModule 这个模块如果没有这个模块说明你的.net core runtime这个没有安装好,安装好这个之后右击iis这个停止然后启动就是重启iis.
  4. 然后就可以测试访问了。