因为既然采用前后端分离的方式,就不想把所有功能都写在一个项目里面,对电脑性能的debug都是一种负担,于是采用微服务思想,将后端API按照业务拆分
因为肯定不能的服务会用到相同的代码块,因此搭建私人Nuget包用来封装相同的代码块
1.vs创建一个API项目,用来做账户服务包括登录注册等等
![](https://img-blog.csdnimg.cn/2193445d712448b7967d770c88bf6131.png)
Api层: 提供Api接口
Core层:提供业务逻辑
Data:定义Entity和Dto
Service:数据仓储与数据库交互
2.NuGet服务搭建
创建一个.net framework4.6的空web项目,在Nuget管理选择加入Nuget.server的包
![](https://img-blog.csdnimg.cn/6544adec419a4d22ad6eac5053faa20b.png)
加入之后项目会多出来许多文件,打开web.config,将 <system.web>下重复的注释掉,我是直接删除
![](https://img-blog.csdnimg.cn/bf349493541e4c098445034d90ee1e10.png)
接下来,项目右键发布到文件夹,将文件夹vs的文件全部Copy到服务器(桌面远程连接直接直接复制到云服务器)
接下来打开IIS
![](https://img-blog.csdnimg.cn/44fa1326dfcd4955895fa6d5fe1386e2.png)
右键点击网站添加网站,网站名称:就是创建后IIS上显示的名称,物理路径就是刚刚Copy到服务器上的路径(到bin目录即可),端口号:最好10000之后,免得和系统服务冲突,我是10001
![](https://img-blog.csdnimg.cn/e4be2ca5bfc843bd8a401d8a82d77a98.png)
接下来和上一章一样,开放防火墙端口,云服务器入站规则端口,开放的端口需要和配置端口号的一样
接下来本机在浏览器上输入弹性ip+端口号(eg:127.0.0.1:11111),讲道理现在会报错
3.报错: 配置错误 不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的(overrideModeDefault=”Deny”),或者是通过包含 overrideMode=”Deny” 或旧有的...
解决方案
服务器打开命令提示行:
执行: C:\windows\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers
再执行:C:\windows\system32\inetsrv\appcmd unlock config -section:system.webServer/modules
然后还会报错: 处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表中有一个错误模。。。。
因为IIS .net Extensibility4.5没安装 ,解决方案
打开控制面板,程序和功能,启动或关闭windows功能
点下一步到服务器角色,一次展开到应用程序开发,勾上.NET Extensibility 4.5,下一步直到安装
![](https://img-blog.csdnimg.cn/41d04ca9c683417da609aa7ef575e3a9.png)
完成后再次打开刚刚的ip地址,看到这个页面,安装成功
![](https://img-blog.csdnimg.cn/9f35c820b32b400099e71320187da7a2.png)
4.封装数据仓储, 本来想用dapper,结果后面发现sqlsuger比dapper好用
sqlsugger国产,使用方法看官网,文档齐全,还是中文,文档中还包括了存储模式的构建
创建一个.net6 的类库,按官方文档依葫芦画瓢构建完成后,右键项目属性,可以在包选项设置标题和版本
![](https://img-blog.csdnimg.cn/d7898b8391b14650863d54cb0e31f3ec.png)
设置完成后,右键项目打包得到nupkg后缀的包文件(路径在Debug或者release文件夹,看打包的时候选择的是啥)
![](https://img-blog.csdnimg.cn/116ddcefe9444ddd9f7f7c4ecc8c5a9e.png)
![](https://img-blog.csdnimg.cn/1fef0d45cb2043f388a0422e76c587e7.png)
将此文件copy到服务器Nuget项目的Packages下,不同版本需要改项目版本配置,这样copy进去就会分为两个版本
![](https://img-blog.csdnimg.cn/85c6c987599d4478bbc48cb0a0ce2ae7.png)
测试
打开程序包管理器设置![](https://img-blog.csdnimg.cn/3eadf3d7596e4e51b9c50e08b9cc7291.png)
名称输入想要的名称,包源写入Nuget的IP+端口
![](https://img-blog.csdnimg.cn/2b3fe9c40f4a4cbc924429a81ce89a78.png)
配置完成后,打开Nuget管理器,选择包源,发现刚刚发布的包,成功
![](https://img-blog.csdnimg.cn/b41abbaf2ee742fe8731bf8014bffe18.png)