ASP.NET Core 2.2 Web Api项目使用本地数据库,发布到本地IIS详细流程

1. 项目创建

1.1 安装

  下载.NETCORE SDK 进行安装

  下载NETCORE RUNTIME进行安装.

  下载Runtime & Hosting Bundle进行安装

  下载地址:https://dotnet.microsoft.com/download/dotnet-core

  微软的安装在windows方面很简单,基本就是一键安装.

1.2 开发工具

            VisualStudio 2019

1.3建立项目工程

  点击文件创建项目,出现如下图示

  

  选择画红圈部分,接着出现如下图示

   

  选择API,身份验证为不进行身份验证。点击确定后,自动生成相应的模板项目。

            文件格式如下

    Connected Services:连接的服务。

            Properties:进行一些属性设置。

            wwwroot:静态文件存放位置。

            依赖项:也就是需要添加的程序集。

            Controller:控制器文件夹,用来进行业务编写的代码,我们基本上需要在这个文件中进行数据的传出与接收。相应的,我们还可以进行各个文件创建,进行层次区分,也可以建立单独的类项目,进行层次区分,如控制层,服务业务层,数据连接层,模型实体层。

             appsettings:配置文件,此处可以编写一些常量设置,然后在程序中进行读取。

             Program:项目启动文件。

             Startup:项目配置设置文件。

2. 数据库连接

2.1. MySQL数据库连接

  首先,我们利用nuget进行连接MySQL程序集的下载安装,如果是无网环境,可以参考我的另一篇文章(关于离线使用nuget进行程序集安装),如下图:

接着我们创建一个数据表结构,例如下图所示(此处为简单例子):

          

         

            C#中创建对应的实体类,另外创建一个类继承dbContext,dbContext是EF框架中非常重要的一个环节,是建立实体类与数据库连接的桥梁,具体的原理,这里不进行赘述。

            具体创建的样式如下图所示:

           

这样我们就可以进行数据库的操作了,测试一下:

            表明我们的数据库已经连接成功,可以成功输出对应数据进行相关的显示了。

            针对上述的连接属性的情况来看,我们不应该把连接的属性编写在代码中,因此我们要设计一下,把连接的属性编写在配置文件中,对appsettings.json, Startup.cs, CoreDbContext.cs进行相关的配置,如图:

            

           

           

            图中标记为红色的部分就是我们需要进行修改或添加的部分,这时其实是已经把coreDbContext注入到容器中进行操作,而容器中对Context的注入方式为瞬时注入,因此后面要用到依赖注入的时候,很多时候,在数据层使用context的时候需要把对应的注入都设计为瞬时注入的形式,此处就不进行过多的提及。

            我们在进行测试一下,这下我们就不用自己进行context的new操作,由于我们一开始进行设置的时候就已经进行了依赖注入的形式,不过,.netCore中只有构造注入,没有属性注入,因此我们就用构造注入的方式进行,如下图所示:

            此时证明我们用这样的方法也可以进行数据的操作。

2.2 SQL server数据库连接操作

            具体的连接方式与上面的基本一致,不过,连接sqlServer的属性设置为:

2.3 数据库Database First与Code First操作

            Code First:通过EF 迁移来完成从模型生成数据库。因此数据库可以不进行相关表的设计,在C#中直接进行上面所做的出数据库建表外的操作。 

            下载安装Microsoft.EntityFrameworkCore.Tools

            打开VS 2017 菜单 工具->nugget包管理器 -> 程序包管理控制台。

            输入Add-Migration MyFirstMigration,接着输入Update-Database执行,出现Done.表示成功创建数据库。

            Database First:通过现有的数据库生成模型(此处以SQLServer为主,目前MySQL没有找到对应的程序集进行此操作)。

            安装Microsoft.EntityFrameworkCore.SqlServer

            安装Microsoft.EntityFrameworkCore.Tools

            安装Microsoft.EntityFrameworkCore.SqlServer.Design

            执行如下命令:

            Scaffold-DbContext “Server=;Database=DatabaseName;UID =;PWD=” Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

            这样就输出到了Models文件夹

  修改数据库IP访问

  

  安全性 -> 登录名 -> NT AUTHORITY\SYSTEM -> 服务器角色 ,勾选sysadmin,点击确认.

3. 发布应用

3.1 点击WebApi项目右键 -> 发布,选择IIS为发布目标

3.2  项目属性内的生成切换为Release,

3.2 连接选项卡,选择文件系统,输入路径,点击下一步

 

 3.4  设置选项卡,配置选择Release,目标框架netcoreapp2.2,文件发布选项勾上,数据库也勾选上输入连接字符串,迁移也需要勾选上输入连接字符串

  

4. 部署应用

4.1 启用IIS

  在控制面板中找到启用或关闭Windows功能,打开IIS相关功能.

  

4.2 添加网站

  打开IIS服务器,右键添加网站,物理路径选择发布的路径,点击连接为,选择用户,然后测试设置,修改端口号,点确定

  

4.3 修改应用程序池,将.NET CLR版本修改为 无托管代码,点击确定.

  

4.4  重启网站,在浏览器上浏览端口号,即可.

  

原文地址:https://www.cnblogs.com/zmsoftbj/p/11387579.html