Info
Version: | 1.2.1.6 |
Author(s): | symbolspace |
Last Update: | Thursday, August 3, 2023 |
.NET Fiddle: | Create the first Fiddle |
Project Url: | https://github.com/symbolspace/Symbol.Cloud/ |
NuGet Url: | https://www.nuget.org/packages/Symbol.Cloud.Server.Kestrel |
Install
Install-Package Symbol.Cloud.Server.Kestrel
dotnet add package Symbol.Cloud.Server.Kestrel
paket add Symbol.Cloud.Server.Kestrel
Symbol.Cloud.Server.Kestrel Download (Unzip the "nupkg" after downloading)
Dependencies
.NETStandard 2.0
- Symbol.Cloud.Server(>= 3.6.0.47)
- Microsoft.AspNetCore.Diagnostics(>= 2.2.0)
- Microsoft.AspNetCore.Http.Abstractions(>= 2.2.0)
- Microsoft.AspNetCore.HttpOverrides(>= 2.2.0)
- Microsoft.AspNetCore.Routing(>= 2.2.0)
- Microsoft.AspNetCore.Server.Kestrel(>= 2.2.0)
- Microsoft.AspNetCore.WebSockets(>= 2.2.0)
- Symbol.Net(>= 4.0.0.5)
- Symbol.Web(>= 4.1.0.2)
- Symbol.Cloud.Server(>= 3.6.0.47)
- Microsoft.AspNetCore.Diagnostics(>= 2.2.0)
- Microsoft.AspNetCore.Http.Abstractions(>= 2.2.0)
- Microsoft.AspNetCore.HttpOverrides(>= 2.2.0)
- Microsoft.AspNetCore.Routing(>= 2.2.0)
- Microsoft.AspNetCore.Server.Kestrel(>= 2.2.0)
- Microsoft.AspNetCore.WebSockets(>= 2.2.0)
- Symbol.Net(>= 4.0.0.5)
- Symbol.Web(>= 4.1.0.2)
- System.Reflection.Emit.Lightweight(>= 4.3.0)
- Symbol.Cloud.Server(>= 3.6.0.47)
- Microsoft.AspNetCore.Diagnostics(>= 2.2.0)
- Microsoft.AspNetCore.Http.Abstractions(>= 2.2.0)
- Microsoft.AspNetCore.HttpOverrides(>= 2.2.0)
- Microsoft.AspNetCore.Routing(>= 2.2.0)
- Microsoft.AspNetCore.Server.Kestrel(>= 2.2.0)
- Microsoft.AspNetCore.WebSockets(>= 2.2.0)
- Symbol.Net(>= 4.0.0.5)
- Symbol.Web(>= 4.1.0.2)
- Symbol.Cloud.Server(>= 3.6.0.47)
- Microsoft.AspNetCore.Diagnostics(>= 2.2.0)
- Microsoft.AspNetCore.Http.Abstractions(>= 2.2.0)
- Microsoft.AspNetCore.HttpOverrides(>= 2.2.0)
- Microsoft.AspNetCore.Routing(>= 2.2.0)
- Microsoft.AspNetCore.Server.Kestrel(>= 2.2.0)
- Microsoft.AspNetCore.WebSockets(>= 2.2.0)
- Symbol.Net(>= 4.0.0.5)
- Symbol.Web(>= 4.1.0.2)
Tags
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System.IO;
public static IHostBuilder CreateHostBuilder(string[] args) {
return Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder => {
webBuilder
.UseConfiguration(
new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
//端口修改办法
// 1 appSetting.json 末尾加一行 "urls": "https://*:10086" 端口自己写
// 2 通过命令行 --urls=http://*:10086
.AddCommandLine(args)
.Build())
//启用http1 和 http2
.EnableHttp1AndHttp2()
//以下两段代码可以放到项目的Startup.cs中,本处方便说明
//组件(服务)时刻
.ConfigureServices((serviceProvider) => {
//加入Mvc组件
serviceProvider.AddControllers();
//加入Symbol Cloud Server 组件
serviceProvider.AddSymbolCloudServer();
})
//启用时刻
.Configure((context, app) => {
//启用调试页面
if (context.HostingEnvironment.IsDevelopment()) {
app.UseDeveloperExceptionPage();
}
//启用路由,Mvc必须使用
app.UseRouting();
//启用Symbol Cloud Server
app.UseSymbolCloudServer();
//启用Symbol Cloud Server API列表页面
// true 表示 监听 / 并跳转到 /apiList.do
app.UseSymbolCloudApiList(true);
//endpoint映射
app.UseEndpoints(endpoints => {
//首页,如果ApiList为false就可以打开它
//endpoints.MapGet("/", async context => {
// await context.Response.WriteAsync("Hello World!");
//});
//Mvc路由规则
endpoints.MapControllerRoute(name: "default", pattern: "{controller}/{action}/{id?}");
});
});
});
}
请在最终运行的项目中配置服务端参数,文件名规则为:app_data/*.cloud.server.config.json,以下为参考配置:
{
//协议配置,可以是单个对象,或数组
//可以不填写
"protocol": [{
"name": "default",//名称,可选
"data": {//数据,不填写默认为json
"type": "json", //类型:json,xml,treePackage,soap,custom
"customType": null //可选,自定义格式类型:TestAssembly.TestClass, TestAssembly
},
"encrypt": {//加密,不填写默认不加密
"type": "none",//类型:none,AESStatic,custom
"customType": null //可选,自定义格式类型:TestAssembly.TestClass, TestAssembly
},
"media": {//传输介质,不填写默认为original
"type": "original",//类型:original,base64,hex,custom
"customType": null //可选,自定义格式类型:TestAssembly.TestClass, TestAssembly
}
}],
//服务器
"server": {
"name": "my.cloud",//名称,可选
"host": "localhost",//主机:域名或IP,默认localhost
"port": 1,//端口
"timeout": 120,//超时:秒,默认120,可选
"debug": true,//调试模式:默认不启用,可选
"settings": { } //参数设置:可选
},
//数据库,不需要可以不写
"database": {
//连接参数
//通用参数:主机、端口、数据库名称、账号、密码
//其它参数可以写在里面,取决于提供者是否支持
"connection": {
"host": "localhost", //主机,可以包括端口,经test.com:1433
"port":11433, //可以不写,表示默认
"name": "test", //数据库名称
"account": "test", //登录账号
"password": "123456" //登录密码
}
},
//客户端
"client": [
{
"name": "my.manager",//名称,可选,并没有影响
"enable": true,//状态
"authCode": "203AFBA5816078A7BAF822C04687B3D3",//授权码
"permissions": [ //权限列表,可选
],
//外部配置,可以不写
//可以为单个字符串,或数组
//外部配置可重写 authCode
//外部配置可追加(自动去重) permissions
//路径相对于配置文件
//支持变量 {name} {server.name}
"config": [
"module.*.manager.client.json",
"{server.name}.manager.client.json"
]
}
]
}
请在api项目中配置权限信息,命名规则以服务端配置config规则定义为准,以下为示例配置:
文件名:module.setting.manager.client.json
存储位置:app_data
{
"permissions": [
//系统设置.Begin
"my.read.setting",
"my.write.setting"
//系统设置.End
]
}.