• 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  重启网站,在浏览器上浏览端口号,即可.

      

  • 相关阅读:
    DLL注入实践
    程序编译保护机制
    加密配置文件总结
    PCL点云配准(3)
    PCL点云分割(3)
    ubuntu Ros环境halcon的一个程序
    opencv2/nonfree/nonfree.hpp:没有那个文件或目录
    深度图像计算三维点云
    利用深度学习的点云语义分割(一)
    3D 特征点概述(2)
  • 原文地址:https://www.cnblogs.com/zmsoftbj/p/11387579.html
Copyright © 2020-2023  润新知