切换导航
{{systemName}}
{{ info.Title }}
{{info.Title}}
{{ menu.Title }}
{{menu.Title}}
登录
|
退出
搜索
机遇屋知识库最简版
录入时间:03/15/2022 17:15:21
预览
下载该模板需支付 0 机遇币
想要下载吗?
先去登录
提取码:aqm2 机遇屋主站代码,你可以创作自己的知识库,也可以让别人参与创作,这是多年前的最精简版本但是逻辑清晰,功能完善,您可以根据自己的需求进行发挥。 ### 演示 [传送门](http://go.jiyuwu.net:9005 "传送门") 用户名|密码 -|- admin|admin ### 部署 #### 运行时 [.net core3.1](https://dotnet.microsoft.com/zh-cn/download/dotnet/3.1 ".net core3.1") [直接下载](https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/runtime-aspnetcore-3.1.29-windows-hosting-bundle-installer "直接下载") #### iis部署程序池 无托管代码 ### 升级.net6 #### Program.cs ``` using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; namespace JYWKBS { public class Program { public static void Main(string[] args) { // 这里调用 CreateHostBuilder 而不是 BuildWebHost CreateHostBuilder(args).Build().Run(); } // 方法名和返回类型都改变了 public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { // 将 UseStartup 和 UseUrls 移动到这里 webBuilder.UseStartup
(); webBuilder.UseUrls("http://127.0.0.1:1982"); }); } } ``` #### Startup.cs ``` using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Threading.Tasks; using IService; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Hosting; using MyFilter; namespace JYWKBS { public class Startup { // 注入 IWebHostEnvironment 以便判断当前环境 public Startup(IWebHostEnvironment env) { Environment = env; } public IWebHostEnvironment Environment { get; } public void ConfigureServices(IServiceCollection services) { services.AddRazorPages(); // 1. 合并 Mvc 和 ControllersWithViews 的注册 var mvcBuilder = services.AddControllersWithViews(opt => { opt.Filters.Add
(); //opt.Filters.Add
(); }); // 2. 仅在开发环境中添加运行时编译 if (Environment.IsDevelopment()) { mvcBuilder.AddRazorRuntimeCompilation(); } // 自动注入服务的代码保持不变 var serviceAsm = Assembly.Load(new AssemblyName("Service")); foreach (Type serviceType in serviceAsm.GetTypes() .Where(t => typeof(IServiceSupport).IsAssignableFrom(t) && !t.GetTypeInfo().IsAbstract)) { var interfaceTypes = serviceType.GetInterfaces(); foreach (var interfaceType in interfaceTypes) { services.AddSingleton(interfaceType, serviceType); } } // 3. 使用推荐的单一方法来注册 IHttpContextAccessor services.AddHttpContextAccessor(); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseStaticFiles(); app.UseRouting(); // 授权等中间件应该放在 UseRouting 和 UseEndpoints 之间 // app.UseAuthentication(); // app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); endpoints.MapRazorPages(); }); } } } ``` #### 类库全部改为.net6 ```
net6.0
``` #### 只保留这几个类库 JYWKBS ```
all
runtime; build; native; contentfiles; analyzers; buildtransitive
``` #### 其他类库看着升级吧 ### 问题 #### ms sql2008 Microsoft.Data.SqlClient.SqlException (0x80131904): 'OFFSET' 附近有语法错误 但是在.net core3.0之后这么使用就会报错"'OFFSET' 附近有语法错误。在 FETCH 语句中选项 NEXT 的用法无效。" 后来网上查了下EntityFrameworkCore3.0开始支持sql2012了,好像对之前的数据库放弃支持了。 EF Core 3.0 从 Preview 6 开始不支持UseRowNumberForPaging, 就把EF的版本降到了Preview 5试了下就行了。 ``` optionsBuilder.UseSqlServer(connStr, b => b.UseRowNumberForPaging()); ``` 推荐:一劳永逸的方法,升级数据库。
版权所有:机遇屋在线 Copyright © 2021-2025 jiyuwu Co., Ltd.
鲁ICP备16042261号-1