登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
AI 队友
登录
注册
轻量养虾,开箱即用!低 Token + 稳定算力,Gitee & 模力方舟联合出品的 PocketClaw 正式开售!点击了解详情
代码拉取完成,页面将自动刷新
开源项目
>
WEB应用开发
>
Web开发框架
&&
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
9.9K
Star
14.5K
Fork
4.2K
GVP
dotNET China
/
Furion
代码
Issues
0
Pull Requests
0
统计
流水线
服务
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
开发画像分析
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
📝 发布 Furion v4.7.9 版本
已完成
#I60MFK
百小僧
拥有者
创建于
2022-11-11 10:13
### 功能描述 发布 `Furion` 和 `Furion.Tools` 和 `Furion.Xunit` `v4.7.9` 版本 包含以下功能更新: ### 功能清单 - [x] 新增 `JSON` 序列化 `DateOnly` 和 `TimeOnly` 类型转换器:`.AddDateOnlyConverters()` 和 `.AddTimeOnlyConverters()` <sup>4.7.9</sup> [!657](https://gitee.com/dotnetchina/Furion/pulls/657) [47a5fcb](https://gitee.com/dotnetchina/Furion/commit/47a5fcbe9dbcff4fb35addc178d2715dbb3544a2) - [x] 新增 `HttpContext.ReadBodyContentAsync()` 拓展方法重复读取 `Body` 内容 <sup>4.7.9</sup> [#I60IYU](https://gitee.com/dotnetchina/Furion/issues/I60IYU) - [x] 调整 **旧版本定时任务为 `弃用` 状态(一周内发布新版),如需取消警告在 `.csproj` 中添加 `<NoWarn>0618</NoWarn>`** <sup>4.7.9</sup> [0ff3ac0](https://gitee.com/dotnetchina/Furion/commit/0ff3ac0fcc54c510ce444b80e9f83eb2c81dc9ba) - [x] 修复 `HttpRequest` 通过 `.ReadBodyContentAsync()` 读取不到 `Body` 问题 <sup>4.7.9</sup> [#I60IYU](https://gitee.com/dotnetchina/Furion/issues/I60IYU) - [x] 发布 `v4.7.9` 版本文档 - [x] 更新 示例项目 `samples` 依赖至 `v4.7.9` 版本 - [x] 同步 [Replit](https://replit.com/@MonkSoul/HelloFurion) 网站 `Furion` 案例至 `v4.7.9` 版本 - [x] 发布 `Gitee` 和 `Github` `Release-v4.7.9` 版本 - [x] 同步 更新日志 ### 代码实现 [https://gitee.com/dotnetchina/Furion/pulls/657](https://gitee.com/dotnetchina/Furion/pulls/657) [https://gitee.com/dotnetchina/Furion/commit/47a5fcbe9dbcff4fb35addc178d2715dbb3544a2](https://gitee.com/dotnetchina/Furion/commit/47a5fcbe9dbcff4fb35addc178d2715dbb3544a2) [https://gitee.com/dotnetchina/Furion/commit/321e58f69fbdfc933c18fa016c0eb331ac9c86e5](https://gitee.com/dotnetchina/Furion/commit/321e58f69fbdfc933c18fa016c0eb331ac9c86e5) [https://gitee.com/dotnetchina/Furion/commit/0ff3ac0fcc54c510ce444b80e9f83eb2c81dc9ba](https://gitee.com/dotnetchina/Furion/commit/0ff3ac0fcc54c510ce444b80e9f83eb2c81dc9ba) [https://gitee.com/dotnetchina/Furion/commit/54b77f87f15168a47383c2f051037acd25cb5b3b](https://gitee.com/dotnetchina/Furion/commit/54b77f87f15168a47383c2f051037acd25cb5b3b) ### 文档更新 **1. 重复读取请求 `Body` 内容** 默认情况下,`ASP.NET Core` 不支持重复读取 `Body` 内容,`Furion` 框架提供了拓展方法,需要按照以下步骤操作: 第一步:**在 `Startup.cs` 的 `Configure` 启用 `Body` 重复读功能**: - `.NET5` 版本: ```cs public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // ... app.EnableBuffering(); app.UseRouting(); // .... } ``` - `.NET6+` 版本: ```cs var builder = WebApplication.CreateBuilder(args).Inject(); // ... var app = builder.Build(); // ... app.UseInject(); app.EnableBuffering(); app.MapControllers(); app.Run(); ``` 注意:`app.EnableBuffering()` 必须在 `app.UseRouting()` 或 `app.MapControllers()` 之前注册。 第二步:**使用 `HttpContext` 或 `HttpRequest` 拓展 `.ReadBodyContentAsync()` 即可**。 ```cs // HttpContext 拓展 var body = await httpContext.ReadBodyContentAsync(); // HttpRequest 拓展 var body = await httpContext.Request.ReadBodyContentAsync(); ``` ----- **2.`DateOnly` 和 `TimeOnly` 类型序列化支持** 在 `.NET6+` 添加了 `DateOnly` 和 `TimeOnly` 类型,`Furion 4.7.8+` 提供了支持。 - `System.Text.Json` 方式 ```cs showLineNumbers services.AddControllersWithViews() .AddJsonOptions(options => { options.JsonSerializerOptions.Converters.AddDateOnlyConverters(); // DateOnly options.JsonSerializerOptions.Converters.AddTimeOnlyConverters(); // TimeOnly }); ``` - `Newtonsoft.Json` 方式 ```cs showLineNumbers .AddNewtonsoftJson(options => { options.JsonSerializerOptions.Converters.AddDateOnlyConverters(); // DateOnly options.JsonSerializerOptions.Converters.AddTimeOnlyConverters(); // TimeOnly }) ``` ----- **3. `PM2` 配置文件 `json` 部署** `pm2` 部署也提供了非常简单的 `json` 配置方式,部署更简单,拓展性更强,不需要每次重复输入命令,如在项目启动项目下添加 `pm2.json`,并设置文件属性 `内容` 为 `始终复制`: ```json { "apps": { "name": "唯一标识", "script": "dotnet", "exec_mode": "fork", "error_file": "logs/err.log", "out_file": "logs/out.log", "merge_logs": true, "log_date_format": "YYYY-MM-DD HH:mm:ss", "min_uptime": "60s", "max_restarts": 30, "autorestart": true, "restart_delay": "60", "args": [ "PMS.Web.Entry.dll", "--urls=http://*:5001" ], "env": { "ASPNETCORE_ENVIRONMENT": "Production" } } } ``` 在发布后的文件目录下打开终端执行: ```bash pm2 start pm2.json ```
### 功能描述 发布 `Furion` 和 `Furion.Tools` 和 `Furion.Xunit` `v4.7.9` 版本 包含以下功能更新: ### 功能清单 - [x] 新增 `JSON` 序列化 `DateOnly` 和 `TimeOnly` 类型转换器:`.AddDateOnlyConverters()` 和 `.AddTimeOnlyConverters()` <sup>4.7.9</sup> [!657](https://gitee.com/dotnetchina/Furion/pulls/657) [47a5fcb](https://gitee.com/dotnetchina/Furion/commit/47a5fcbe9dbcff4fb35addc178d2715dbb3544a2) - [x] 新增 `HttpContext.ReadBodyContentAsync()` 拓展方法重复读取 `Body` 内容 <sup>4.7.9</sup> [#I60IYU](https://gitee.com/dotnetchina/Furion/issues/I60IYU) - [x] 调整 **旧版本定时任务为 `弃用` 状态(一周内发布新版),如需取消警告在 `.csproj` 中添加 `<NoWarn>0618</NoWarn>`** <sup>4.7.9</sup> [0ff3ac0](https://gitee.com/dotnetchina/Furion/commit/0ff3ac0fcc54c510ce444b80e9f83eb2c81dc9ba) - [x] 修复 `HttpRequest` 通过 `.ReadBodyContentAsync()` 读取不到 `Body` 问题 <sup>4.7.9</sup> [#I60IYU](https://gitee.com/dotnetchina/Furion/issues/I60IYU) - [x] 发布 `v4.7.9` 版本文档 - [x] 更新 示例项目 `samples` 依赖至 `v4.7.9` 版本 - [x] 同步 [Replit](https://replit.com/@MonkSoul/HelloFurion) 网站 `Furion` 案例至 `v4.7.9` 版本 - [x] 发布 `Gitee` 和 `Github` `Release-v4.7.9` 版本 - [x] 同步 更新日志 ### 代码实现 [https://gitee.com/dotnetchina/Furion/pulls/657](https://gitee.com/dotnetchina/Furion/pulls/657) [https://gitee.com/dotnetchina/Furion/commit/47a5fcbe9dbcff4fb35addc178d2715dbb3544a2](https://gitee.com/dotnetchina/Furion/commit/47a5fcbe9dbcff4fb35addc178d2715dbb3544a2) [https://gitee.com/dotnetchina/Furion/commit/321e58f69fbdfc933c18fa016c0eb331ac9c86e5](https://gitee.com/dotnetchina/Furion/commit/321e58f69fbdfc933c18fa016c0eb331ac9c86e5) [https://gitee.com/dotnetchina/Furion/commit/0ff3ac0fcc54c510ce444b80e9f83eb2c81dc9ba](https://gitee.com/dotnetchina/Furion/commit/0ff3ac0fcc54c510ce444b80e9f83eb2c81dc9ba) [https://gitee.com/dotnetchina/Furion/commit/54b77f87f15168a47383c2f051037acd25cb5b3b](https://gitee.com/dotnetchina/Furion/commit/54b77f87f15168a47383c2f051037acd25cb5b3b) ### 文档更新 **1. 重复读取请求 `Body` 内容** 默认情况下,`ASP.NET Core` 不支持重复读取 `Body` 内容,`Furion` 框架提供了拓展方法,需要按照以下步骤操作: 第一步:**在 `Startup.cs` 的 `Configure` 启用 `Body` 重复读功能**: - `.NET5` 版本: ```cs public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // ... app.EnableBuffering(); app.UseRouting(); // .... } ``` - `.NET6+` 版本: ```cs var builder = WebApplication.CreateBuilder(args).Inject(); // ... var app = builder.Build(); // ... app.UseInject(); app.EnableBuffering(); app.MapControllers(); app.Run(); ``` 注意:`app.EnableBuffering()` 必须在 `app.UseRouting()` 或 `app.MapControllers()` 之前注册。 第二步:**使用 `HttpContext` 或 `HttpRequest` 拓展 `.ReadBodyContentAsync()` 即可**。 ```cs // HttpContext 拓展 var body = await httpContext.ReadBodyContentAsync(); // HttpRequest 拓展 var body = await httpContext.Request.ReadBodyContentAsync(); ``` ----- **2.`DateOnly` 和 `TimeOnly` 类型序列化支持** 在 `.NET6+` 添加了 `DateOnly` 和 `TimeOnly` 类型,`Furion 4.7.8+` 提供了支持。 - `System.Text.Json` 方式 ```cs showLineNumbers services.AddControllersWithViews() .AddJsonOptions(options => { options.JsonSerializerOptions.Converters.AddDateOnlyConverters(); // DateOnly options.JsonSerializerOptions.Converters.AddTimeOnlyConverters(); // TimeOnly }); ``` - `Newtonsoft.Json` 方式 ```cs showLineNumbers .AddNewtonsoftJson(options => { options.JsonSerializerOptions.Converters.AddDateOnlyConverters(); // DateOnly options.JsonSerializerOptions.Converters.AddTimeOnlyConverters(); // TimeOnly }) ``` ----- **3. `PM2` 配置文件 `json` 部署** `pm2` 部署也提供了非常简单的 `json` 配置方式,部署更简单,拓展性更强,不需要每次重复输入命令,如在项目启动项目下添加 `pm2.json`,并设置文件属性 `内容` 为 `始终复制`: ```json { "apps": { "name": "唯一标识", "script": "dotnet", "exec_mode": "fork", "error_file": "logs/err.log", "out_file": "logs/out.log", "merge_logs": true, "log_date_format": "YYYY-MM-DD HH:mm:ss", "min_uptime": "60s", "max_restarts": 30, "autorestart": true, "restart_delay": "60", "args": [ "PMS.Web.Entry.dll", "--urls=http://*:5001" ], "env": { "ASPNETCORE_ENVIRONMENT": "Production" } } } ``` 在发布后的文件目录下打开终端执行: ```bash pm2 start pm2.json ```
评论 (
7
)
登录
后才可以发表评论
状态
已完成
待办的
进行中
已完成
已关闭
负责人
未设置
百小僧
monksoul
负责人
协作者
+负责人
+协作者
标签
优化
建议
新功能
漏洞
未设置
标签管理
里程碑
v4.7.9
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
分支 (
-
)
标签 (
-
)
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
参与者(3)
C#
1
https://gitee.com/dotnetchina/Furion.git
git@gitee.com:dotnetchina/Furion.git
dotnetchina
Furion
Furion
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册