.net 6配置api网关ocelot
1、新建webapi项目 2、添加依赖 3、添加配置(配合Consul,安装Consul可参考《.Net6 Furion框架配置Consul》) 4、Startup.cs配置 注意: services.AddOcelot().AddConsul() 如果缺少紫色部分(需要安装对应的Provider,例如Ocelot.Provider.Consul),配置又启用了服务发现,就会出现如下错误:
详细内容.Net6 Furion框架配置Consul
1、安装Consul Windows系统可参考:《Windows安装Consul并配置为Windows服务》 2、搭建Furion 使用的Sqlsugar的Webfirst生成的Furion,因此构成如下: 3、配置 3.1 Furion.Web.Core项目配置 添加依赖: 修改appsettings.json 添加Helper Startup.cs配置: 3.2 Furion.Web.Entry配置 appsettings.json配置: 新建api或添加action 至此完成Furion配置Consul操作,如果需要新增其他服务,只需要新建webapi项目,按照(3)步骤操作修改相应的配置即可!注意创建项目时不用勾选OpenApi,因为Furion本身就有Swagger配置。
详细内容Windows安装Consul并配置为Windows服务
1、Consul下载:https://developer.hashicorp.com/consul/downloads 选择Windows版本下载 2、解压到特定目录,例如:D:\Consul\ 3、配置环境变量Path增加解压的路径,例如: D:\Consul\ 4、打开cmd,运行 sc create “Consul” start=”auto” binPath=”consul agent -dev” 5、【可选】重启服务器 6、打开服务管理,查看Consul是否正常启动,如果正常启动表示已成功配置 访问Consul:http://localhost:8500
详细内容Furion的统一返回值模型应用
编写webapi就会涉及到返回结果给客户端(IActionResult),客户端根据返回的结果判断当前接口调用情况再给用户相应的提示或界面。 如果没有一个统一的结果结构,后期维护时或新成员介入开发时会增加开发难度,Furion提供了一个统一返回值模型。 一、定义返回模型ApiResultProvider.cs 二、Startup.cs配置 三、使用 使用的时候,要返回自定义的错误内容可以通过throw new Exception方式将错误内容传递到OnException,因为这样操作没有设定ErrorCode,所以可以进行处理(如上面红色字部分)。
详细内容添加数据到数据库时提示Duplicate entry ” for key ‘xxx’
开发.net core程序时通过sqlsugar添加数据到数据库时添加1条记录后,添加第二条提示 Duplicate entry ” for key ‘xxx’,而这个xxx并非对应数据表的字段,这是因为另外定义了名为xxx的索引,而且将索引设定为UNIQUE,导致添加第一条后,添加第二条索引字段出现重复值而被数据库提示错误。 解决方法旧是把这个索引修改为index就ok,当然了,如果这个索引确实需要唯一,那就要排查你添加数据的逻辑了。
详细内容Furion使用JWT验证App.User?.FindFirstValue无法获取jwt的信息
熟悉Furion过程中,使用jwt作为webapi验证方式,在action中通过App.User?.FindFirstValue(“UId”);尝试获取用户的ID,结果提示未找到(null)。 经过反复排查,发现问题如下:客户端Header添加jwt的token如下: 而我错误的使用了如下,一个键名错误,另一个少了Bearer 部分 修改过来后,即可正常获取! PS: Furion自带的JWT机制只需要简单的配置即可完成对webapi的验证,且可以自动刷新token。可以剩下我们不少的工作。
详细内容uniapp使用@touchmove配合view实现滑动条
开发智能文字转语音小程序需要设置音量、语速、语调等参数,考虑使用滑动条实现,然而uniapp并没有直接滑动条的组件,因此使用view配合touchmove来实现。 页面加载初始化代码 修改音量js代码
详细内容使用WebApiClientCore快速编写Api调用类
开发微信小程序或者网站后台是,难免要对接一些外部的API,传统调用是使用HttpClient或者WebClient,然而写起来相当繁琐! 为此老九写了个WebApiClient并且推出了.Net Core版本的WebApiClientCore,本文简单介绍如何使用: 1、安装包 install-package webapiclientcore install-package webapiclientcore.oauth 2、定义Api调用接口 3、配置Startup.cs 在Startup.cs中的ConfigureServices中添加注入: 4、Controller中调用 至此完成了百度卡证识别中的执照识别接口调用,需要的时候增加IBaiduApi里面的方法接口即可!
详细内容阿里云函数计算(FC)对文件处理的支持情况
开发查标宝这个商标查询微信小程序的商标代理委托书生成工具时,需要读取模板文件内容,替换标签再将内容存储为一个文件到静态文件目录中,再将该文件的URL返回给商标注册代理或者商标注册人下载。 开发完,本地调试可运行无bug后,照例将这个.Net 6开发的WebApi部署到阿里云的函数计算FC上,结果出现了500错误,查看阿里云函数计算的日志后,发现记录如下: 红色标记为模板文件的路径,保存再wwwroot这个静态文件目录,错误的含义就是无法找到指定路径的模板文件。 经过检查分析后,个人认为是阿里云的函数计算产品偏向于执行承载计算能力,在用户调用计算函数时,系统将要指定计算的代码复制到临时目录(/code/),执行完之后清空临时目录,所以这个模板文件也就无法找到了。 最终只能将webapi转成.Net 3.1然后部署到西部数码的.Net空间中!
详细内容使用旧data文件夹恢复mysql数据库
有批旧mysql数据需要恢复,程序员只保留了原本的data目录,为了导出旧数据需要恢复data目录中的数据库。 操作流程: 1、安装与旧mysql同一个版本的mysql,注意:如果可以最好版本完全一致,其次是在同一个子版本,例如5.7 2、停掉新安装的mysql 3、备份新mysql的data目录中的文件,然后清空data下面所有内容 4、将旧mysql的data目录中的内容复制到新mysql的data目录下,并设定好相应的权限(比如宝塔mysql目录用户是mysql、权限755、640都有,自己看下data目录本身的权限) 5、启动mysql(如果第4步的权限没设定好,一般是无法启动的,看下日志,确认下错误原因) 6、通过phpmyadmin或者其他mysql连接工具使用旧的mysql的账户密码登录 如果忘记旧mysql的root密码,可以按照如下步骤: 1、在mysql配置文件中的[mysqld]节点加入 skip-grant-tables 2、重启mysql服务 3、使用控制台命令mysql -u root登录mysql 4、刷新权限flush privileges; 5、重设密码:set password for ‘root’@’localhost’=’123456′; 注意橘色部分,如果你的root是允许所有机器登录的,直接把橘色去掉,否则会提示找不到用户的错误
详细内容