Browse Source

添加服务面板

pull/10/head 4.4.0.13
王军 4 years ago
parent
commit
0de11491ce
  1. 2
      aspnet-core/CompanyName.ProjectName.sln
  2. 10
      aspnet-core/Directory.Build.props
  3. 17
      aspnet-core/frameworks/CAP/src/Lion.Abp.Cap/Lion.Abp.Cap.csproj
  4. 39
      aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/Customs/Guard.cs
  5. 10
      aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/Lion.Abp.Extension.csproj
  6. 37
      aspnet-core/gateways/CompanyName.ProjectName.WebGateway/WebGatewayModule.cs
  7. 8
      aspnet-core/gateways/CompanyName.ProjectName.WebGateway/appsettings.Consul.json
  8. 17
      aspnet-core/gateways/CompanyName.ProjectName.WebGateway/appsettings.Development.json
  9. 56
      aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/CompanyName.ProjectName.HttpApi.Host.csproj
  10. 2
      aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/Controllers/HomeController.cs
  11. 161
      aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/Pages/Login.cshtml
  12. 67
      aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/Pages/Login.cshtml.cs
  13. 173
      aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/Pages/Monitor.cshtml
  14. 12
      aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/Pages/Monitor.cshtml.cs
  15. 34
      aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostConsts.cs
  16. 38
      aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.cs
  17. 2
      aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/Properties/launchSettings.json
  18. BIN
      aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/wwwroot/images/cap.png
  19. BIN
      aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/wwwroot/images/hangfire.png
  20. BIN
      aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/wwwroot/images/more.png
  21. BIN
      aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/wwwroot/images/swagger.png
  22. BIN
      aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/wwwroot/images/xxx-job.png
  23. 6
      aspnet-core/services/host/CompanyName.ProjectName.IdentityServer/CompanyName.ProjectName.IdentityServer.csproj
  24. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/CompanyName.ProjectName.Application.Contracts.csproj
  25. 4
      aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/Permissions/ProjectNamePermissionDefinitionProvider.cs
  26. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/Permissions/ProjectNamePermissions.cs
  27. 2
      aspnet-core/services/src/CompanyName.ProjectName.Application/CompanyName.ProjectName.Application.csproj
  28. 11
      aspnet-core/services/src/CompanyName.ProjectName.DbMigrator/CompanyName.ProjectName.DbMigrator.csproj
  29. 7
      aspnet-core/services/src/CompanyName.ProjectName.Domain.Shared/CompanyName.ProjectName.Domain.Shared.csproj
  30. 7
      aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository/CompanyName.ProjectName.ElasticsearchRepository.csproj
  31. 2
      aspnet-core/services/src/CompanyName.ProjectName.EntityFrameworkCore/CompanyName.ProjectName.EntityFrameworkCore.csproj
  32. 4
      aspnet-core/services/src/CompanyName.ProjectName.FreeSqlRepository/CompanyName.ProjectName.FreeSqlRepository.csproj
  33. 2
      aspnet-core/services/src/CompanyName.ProjectName.HttpApi/CompanyName.ProjectName.HttpApi.csproj
  34. 2
      aspnet-core/services/test/CompanyName.ProjectName.Application.Tests/CompanyName.ProjectName.Application.Tests.csproj
  35. 2
      aspnet-core/services/test/CompanyName.ProjectName.Domain.Tests/CompanyName.ProjectName.Domain.Tests.csproj
  36. 2
      aspnet-core/services/test/CompanyName.ProjectName.EntityFrameworkCore.Tests/CompanyName.ProjectName.EntityFrameworkCore.Tests.csproj
  37. 4
      aspnet-core/services/test/CompanyName.ProjectName.HttpApi.Client.ConsoleTestApp/CompanyName.ProjectName.HttpApi.Client.ConsoleTestApp.csproj
  38. 12
      aspnet-core/services/test/CompanyName.ProjectName.TestBase/CompanyName.ProjectName.TestBase.csproj
  39. 8
      aspnet-core/shared/CompanyName.ProjectName.Shared.Hosting.Gateways/CompanyName.ProjectName.Shared.Hosting.Gateways.csproj
  40. 10
      aspnet-core/shared/CompanyName.ProjectName.Shared.Hosting.Gateways/SharedHostingGatewayModule.cs
  41. 12
      aspnet-core/shared/CompanyName.ProjectName.Shared.Hosting.Microservices/CompanyName.ProjectName.Shared.Hosting.Microservices.csproj

2
aspnet-core/CompanyName.ProjectName.sln

@ -35,7 +35,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CompanyName.ProjectName.DbM
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "services", "services", "{2C861ADD-76E9-4B3B-8A3C-638EBB67D683}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{2C4A6DB8-8D9E-42E6-B7C3-1EDB7B3DE22E}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "0.Solution Items", "0.Solution Items", "{2C4A6DB8-8D9E-42E6-B7C3-1EDB7B3DE22E}"
ProjectSection(SolutionItems) = preProject
common.props = common.props
Directory.Build.props = Directory.Build.props

10
aspnet-core/Directory.Build.props

@ -2,9 +2,13 @@
<PropertyGroup>
<AbpPackageVersion>4.4.0</AbpPackageVersion>
<DotNetCoreCAP>5.1.4</DotNetCoreCAP>
<DotNetCoreCAPVersion>5.1.4</DotNetCoreCAPVersion>
<MicrosoftVersion>5.0.12</MicrosoftVersion>
<NewtonsoftJsonVersion>13.0.1</NewtonsoftJsonVersion>
<MicrosoftExtensionsHttpVersion>5.0.0</MicrosoftExtensionsHttpVersion>
<SystemComponentModelAnnotationsVersion>5.0.0</SystemComponentModelAnnotationsVersion>
<MicrosoftExtensionsDependencyModelVersion>5.0.0</MicrosoftExtensionsDependencyModelVersion>
<EasyAbpSttingVersion>1.5.0</EasyAbpSttingVersion>
<SerilogVersion>2.10.0</SerilogVersion>
<SerilogExtensionsLoggingVersion>3.0.1</SerilogExtensionsLoggingVersion>
@ -15,7 +19,7 @@
<SerilogExceptionsVersion>7.0.0</SerilogExceptionsVersion>
<SerilogSettingsConfigurationVersion>3.1.0</SerilogSettingsConfigurationVersion>
<SerilogSinksElasticsearchVersion>8.4.1</SerilogSinksElasticsearchVersion>
<NESTVersion>7.14.1</NESTVersion>
<NESTVersion>7.15.1</NESTVersion>
<HangfireMySqlStorageVersion>2.0.3</HangfireMySqlStorageVersion>
<SwashbuckleAspNetCoreAnnotationsVersion>6.1.4</SwashbuckleAspNetCoreAnnotationsVersion>
<MicrosoftNETTestSdkVersion>16.9.1</MicrosoftNETTestSdkVersion>
@ -25,6 +29,8 @@
<Xunitrunnervisualstudio>2.4.3</Xunitrunnervisualstudio>
<OcelotVersion>17.0.0</OcelotVersion>
<SwaggerUIVersion>6.2.3</SwaggerUIVersion>
<FreeSqlVersion>2.5.200</FreeSqlVersion>
</PropertyGroup>
</Project>

17
aspnet-core/frameworks/CAP/src/Lion.Abp.Cap/Lion.Abp.Cap.csproj

@ -1,17 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Savorboard.CAP.InMemoryMessageQueue" Version="5.1.1" />
<PackageReference Include="Volo.Abp.Core" Version="4.4.0" />
<PackageReference Include="Volo.Abp.EventBus" Version="4.4.0" />
<PackageReference Include="DotNetCore.CAP" Version="5.1.4" />
<PackageReference Include="DotNetCore.CAP.MySql" Version="5.1.4" />
<PackageReference Include="DotNetCore.CAP.RabbitMQ" Version="5.1.4" />
<PackageReference Include="DotNetCore.CAP.Dashboard" Version="5.1.4" />
<PackageReference Include="DotNetCore.CAP.InMemoryStorage" Version="5.1.4" />
<PackageReference Include="Volo.Abp.Core" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.EventBus" Version="$(AbpPackageVersion)" />
<PackageReference Include="DotNetCore.CAP" Version="$(DotNetCoreCAPVersion)" />
<PackageReference Include="DotNetCore.CAP.MySql" Version="$(DotNetCoreCAPVersion)" />
<PackageReference Include="DotNetCore.CAP.RabbitMQ" Version="$(DotNetCoreCAPVersion)" />
<PackageReference Include="DotNetCore.CAP.Dashboard" Version="$(DotNetCoreCAPVersion)" />
<PackageReference Include="DotNetCore.CAP.InMemoryStorage" Version="$(DotNetCoreCAPVersion)" />
</ItemGroup>
</Project>

39
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/Customs/Guard.cs

@ -14,11 +14,9 @@ namespace Lion.Abp.Extension
{
/// <summary>
/// 检查参数不能为空引用,
/// 否则抛出<see cref="BeeNullException"/>异常。
/// </summary>
/// <param name="value"></param>
/// <param name="valueName">参数名称</param>
/// <exception cref="BeeNullException"></exception>
public static T NotNull<T>(T value, string valueName)
{
if (null == value)
@ -31,17 +29,11 @@ namespace Lion.Abp.Extension
/// <summary>
/// 检查字符串不能为空引用或空字符串,
/// 否则抛出<see cref="BeeNullOrEmptyException"/>异常
/// 或<see cref="BeeLengthGreaterException"/>异常
/// 或<see cref="BeeLengthLessException"/>异常。
/// </summary>
/// <param name="value"></param>
/// <param name="valueName">参数名称。</param>
/// <param name="maxLength">字符串允许的最大长度。</param>
/// <param name="minLength">字符串允许的最小长度。0表示不限制最小长度</param>
/// <exception cref="BeeNullOrEmptyException"></exception>
/// <exception cref="BeeLengthGreaterException"></exception>
/// <exception cref="BeeLengthLessException"></exception>
public static string NotNullOrEmpty(string value, string valueName, int maxLength = int.MaxValue,
int minLength = 0)
{
@ -65,17 +57,11 @@ namespace Lion.Abp.Extension
/// <summary>
/// 检查字符串不能为空引用或全部为空白,
/// 否则抛出<see cref="BeeNullOrWhiteSpaceException"/>异常
/// 或<see cref="BeeLengthGreaterException"/>异常
/// 或<see cref="BeeLengthLessException"/>异常。
/// </summary>
/// <param name="value">需检查的字符串</param>
/// <param name="valueName">参数名称。</param>
/// <param name="maxLength">字符串允许的最大长度。</param>
/// <param name="minLength">字符串允许的最小长度。0表示不限制最小长度</param>
/// <exception cref="BeeNullOrWhiteSpaceException"></exception>
/// <exception cref="BeeLengthGreaterException"></exception>
/// <exception cref="BeeLengthLessException"></exception>
public static string NotNullOrWhiteSpace(
string value,
string valueName,
@ -102,15 +88,11 @@ namespace Lion.Abp.Extension
/// <summary>
/// 检查字符串长度是否超过最大长度,或低于最小长度,
/// 否则抛出<see cref="BeeLengthGreaterException"/>异常
/// 或<see cref="BeeLengthLessException"/>异常。
/// </summary>
/// <param name="value">需检查的字符串。</param>
/// <param name="valueName">参数名称。</param>
/// <param name="maxLength">字符串允许的最大长度。</param>
/// <param name="minLength">字符串要求的最小长度。0表示不限制最小长度</param>
/// <exception cref="BeeLengthGreaterException"></exception>
/// <exception cref="BeeLengthLessException"></exception>
public static string Length(string value, string valueName, int maxLength = int.MaxValue,
int minLength = 0)
{
@ -133,11 +115,10 @@ namespace Lion.Abp.Extension
}
/// <summary>
/// 检查Guid值不能为Guid.Empty,否则抛出<see cref="BeeEmptyGuidException"/>异常。
/// 检查Guid值不能为Guid.Empty
/// </summary>
/// <param name="value"></param>
/// <param name="valueName">参数名称。</param>
/// <exception cref="BeeEmptyGuidException"></exception>
public static Guid NotEmpty(
Guid value,
string valueName)
@ -152,12 +133,10 @@ namespace Lion.Abp.Extension
/// <summary>
/// 检查集合不能为空引用或空集合,
/// 否则抛出<see cref="BeeCollectionNullOrEmptyException"/>异常。
/// </summary>
/// <typeparam name="T">集合项的类型。</typeparam>
/// <param name="list"></param>
/// <param name="valueName">参数名称。</param>
/// <exception cref="BeeCollectionNullOrEmptyException"></exception>
public static void NotNullOrEmpty<T>(
IReadOnlyList<T> list,
string valueName)
@ -170,14 +149,12 @@ namespace Lion.Abp.Extension
/// <summary>
/// 检查参数必须小于[或可等于,参数<paramref name="canEqual"/>]指定值,
/// 否则抛出<see cref="BeeOutOfRangeException"/>异常。
/// </summary>
/// <typeparam name="T">参数类型。</typeparam>
/// <param name="value"></param>
/// <param name="valueName">参数名称。</param>
/// <param name="target">要比较的值。</param>
/// <param name="canEqual">是否可等于。</param>
/// <exception cref="BeeOutOfRangeException"></exception>
public static void LessThan<T>(
T value,
string valueName,
@ -194,14 +171,12 @@ namespace Lion.Abp.Extension
/// <summary>
/// 检查参数必须大于[或可等于,参数<paramref name="canEqual"/>]指定值,
/// 否则抛出<see cref="BeeOutOfRangeException"/>异常。
/// </summary>
/// <typeparam name="T">参数类型。</typeparam>
/// <param name="value">需检查的参数。</param>
/// <param name="valueName">参数名称。</param>
/// <param name="target">要比较的值。</param>
/// <param name="canEqual">是否可等于。</param>
/// <exception cref="BeeOutOfRangeException"></exception>
public static void GreaterThan<T>(
T value,
string valueName,
@ -217,7 +192,7 @@ namespace Lion.Abp.Extension
}
/// <summary>
/// 检查参数必须在指定范围之间,否则抛出<see cref="BeeOutOfRangeException"/>异常。
/// 检查参数必须在指定范围之间
/// </summary>
/// <typeparam name="T">参数类型。</typeparam>
/// <param name="value">需检查的参数。</param>
@ -226,7 +201,6 @@ namespace Lion.Abp.Extension
/// <param name="end">比较范围的结束值。</param>
/// <param name="startEqual">是否可等于起始值</param>
/// <param name="endEqual">是否可等于结束值</param>
/// <exception cref="BeeOutOfRangeException">不在指定范围内时</exception>
public static void Between<T>(
T value,
string valueName,
@ -251,13 +225,9 @@ namespace Lion.Abp.Extension
/// <summary>
/// 检查指定路径的文件夹必须存在,
/// 否则抛出<see cref="BeeDirectoryNotFoundException"/>异常
/// 或 <see cref="BeeNullException"/>异常。
/// </summary>
/// <param name="directory">需检查的路径。</param>
/// <param name="parameterName">参数名称。</param>
/// <exception cref="BeeNullException">当文件夹路径为null或空时</exception>
/// <exception cref="BeeDirectoryNotFoundException">当文件夹路径不存在时</exception>
public static string DirectoryExists(
string directory,
string parameterName)
@ -276,12 +246,11 @@ namespace Lion.Abp.Extension
}
/// <summary>
/// 检查指定路径的文件必须存在,否则抛出<see cref="FileNotFoundException"/>异常。
/// 检查指定路径的文件必须存在,否则抛出
/// </summary>
/// <param name="filename"></param>
/// <param name="valueName">参数名称。</param>
/// <exception cref="BeeNullOrWhiteSpaceException">当文件路径为null或空时</exception>
/// <exception cref="BeeFileNotFoundException">当文件路径不存在时</exception>
public static string FileExists(
string filename,
string valueName)

10
aspnet-core/frameworks/Extensions/src/Lion.Abp.Extension/Lion.Abp.Extension.csproj

@ -1,13 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="5.0.0" />
<PackageReference Include="Microsoft.Extensions.Http" Version="5.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="$(MicrosoftExtensionsDependencyModelVersion)" />
<PackageReference Include="Microsoft.Extensions.Http" Version="$(MicrosoftExtensionsHttpVersion)" />
<PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonVersion)" />
<PackageReference Include="System.ComponentModel.Annotations" Version="$(SystemComponentModelAnnotationsVersion)" />
<PackageReference Include="Volo.Abp.Autofac" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.Json" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.Validation" Version="$(AbpPackageVersion)" />

37
aspnet-core/gateways/CompanyName.ProjectName.WebGateway/WebGatewayModule.cs

@ -22,25 +22,16 @@ namespace CompanyName.ProjectName.WebGateway
public override void ConfigureServices(ServiceConfigurationContext context)
{
ConfigureCors(context);
ConfigureSwaggerServices(context);
}
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
var app = context.GetApplicationBuilder();
var env = context.GetEnvironment();
app.UseCorrelationId();
app.UseCors(DefaultCorsPolicyName);
app.UseRouting();
app.UseSwagger();
app.UseSwaggerUI(options =>
{
options.SwaggerEndpoint("/ProjectName/swagger.json", "ProjectNameAPI");
options.DefaultModelsExpandDepth(-1);
options.DocExpansion(DocExpansion.None);
});
app.UseConfiguredEndpoints();
app.UseConfiguredEndpoints(endpoints => { endpoints.MapHealthChecks("/health"); });
app.UseWebSockets();
app.UseOcelot().Wait();
}
@ -48,7 +39,6 @@ namespace CompanyName.ProjectName.WebGateway
/// <summary>
/// 配置跨域
/// </summary>
/// <param name="context"></param>
private void ConfigureCors(ServiceConfigurationContext context)
{
var configuration = context.Services.GetConfiguration();
@ -72,28 +62,5 @@ namespace CompanyName.ProjectName.WebGateway
});
}
private static void ConfigureSwaggerServices(ServiceConfigurationContext context)
{
context.Services.AddSwaggerGen(
options =>
{
options.SwaggerDoc("v1", new OpenApiInfo {Title = "WebGateway API", Version = "v1"});
options.DocInclusionPredicate((docName, description) => true);
options.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Type = ReferenceType.SecurityScheme, Id = "Bearer"
}
},
new List<string>()
}
});
});
}
}
}

8
aspnet-core/gateways/CompanyName.ProjectName.WebGateway/appsettings.Consul.json

@ -15,13 +15,13 @@
},
"Routes": [
{
"DownstreamPathTemplate": "/swagger/ProjectName/swagger.json",
"DownstreamPathTemplate": "/{url}",
"DownstreamScheme": "http",
"ServiceName": "Project-Service",
"LoadBalancerOptions": {
"Type": "LeastConnection"
},
"UpstreamPathTemplate": "/ProjectName/swagger.json",
"UpstreamPathTemplate": "/gateway/{url}",
"UpstreamHttpMethod": [
"Get",
"Post",
@ -31,12 +31,12 @@
},
{
"DownstreamPathTemplate": "/{url}",
"DownstreamScheme": "http",
"DownstreamScheme": "ws",
"ServiceName": "Project-Service",
"LoadBalancerOptions": {
"Type": "LeastConnection"
},
"UpstreamPathTemplate": "/gateway/{url}",
"UpstreamPathTemplate": "/ws/{url}",
"UpstreamHttpMethod": [
"Get",
"Post",

17
aspnet-core/gateways/CompanyName.ProjectName.WebGateway/appsettings.Development.json

@ -14,23 +14,6 @@
"GlobalConfiguration": {
},
"Routes": [
{
"DownstreamPathTemplate": "/swagger/ProjectName/swagger.json",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 44315
}
],
"UpstreamPathTemplate": "/ProjectName/swagger.json",
"UpstreamHttpMethod": [
"Get",
"Post",
"Put",
"Delete"
]
},
{
"DownstreamPathTemplate": "/{url}",
"DownstreamScheme": "http",

56
aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/CompanyName.ProjectName.HttpApi.Host.csproj

@ -9,9 +9,9 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Hangfire.MySqlStorage" Version="2.0.3" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.*" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="5.0.*" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="$(MicrosoftVersion)" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="$(MicrosoftVersion)" />
<PackageReference Include="Volo.Abp.Account.Web" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.Autofac" Version="$(AbpPackageVersion)" />
@ -20,20 +20,18 @@
<PackageReference Include="Volo.Abp.AspNetCore.Serilog" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.Swashbuckle" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.AspNetCore.Authentication.JwtBearer" Version="$(AbpPackageVersion)" />
<PackageReference Include="Serilog" Version="2.10.0" />
<PackageReference Include="Serilog.AspNetCore" Version="4.1.0" />
<PackageReference Include="Serilog.Exceptions" Version="7.0.0" />
<PackageReference Include="Serilog.Extensions.Logging" Version="3.0.1" />
<PackageReference Include="Serilog.Settings.Configuration" Version="3.1.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Serilog.Sinks.Elasticsearch" Version="8.4.1" />
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
<PackageReference Include="AspNetCore.HealthChecks.MySql" Version="5.0.1" />
<PackageReference Include="AspNetCore.HealthChecks.Redis" Version="5.0.2" />
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="5.0.7" />
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic" Version="$(AbpPackageVersion)" />
<PackageReference Include="Serilog" Version="$(SerilogVersion)" />
<PackageReference Include="Serilog.AspNetCore" Version="$(SerilogAspNetCoreVersion)" />
<PackageReference Include="Serilog.Exceptions" Version="$(SerilogExceptionsVersion)" />
<PackageReference Include="Serilog.Extensions.Logging" Version="$(SerilogExtensionsLoggingVersion)" />
<PackageReference Include="Serilog.Settings.Configuration" Version="$(SerilogSettingsConfigurationVersion)" />
<PackageReference Include="Serilog.Sinks.Console" Version="$(SerilogSinksConsoleVersion)" />
<PackageReference Include="Serilog.Sinks.Elasticsearch" Version="$(SerilogSinksElasticsearchVersion)" />
<PackageReference Include="Serilog.Sinks.File" Version="$(SerilogSinksFileVersion)" />
<PackageReference Include="Hangfire.MySqlStorage" Version="$(HangfireMySqlStorageVersion)" />
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="$(MicrosoftVersion)" />
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic" Version="$(AbpPackageVersion)" />
</ItemGroup>
<ItemGroup>
@ -51,28 +49,4 @@
<None Remove="Logs\**" />
</ItemGroup>
<ItemGroup>
<_ContentIncludedByDefault Remove="publish\publish\publish\web.config" />
<_ContentIncludedByDefault Remove="publish\publish\web.config" />
<_ContentIncludedByDefault Remove="publish\web.config" />
<_ContentIncludedByDefault Remove="publish\appsettings.Development.json" />
<_ContentIncludedByDefault Remove="publish\appsettings.json" />
<_ContentIncludedByDefault Remove="publish\appsettings.Production.json" />
<_ContentIncludedByDefault Remove="publish\appsettings.secrets.json" />
<_ContentIncludedByDefault Remove="publish\CompanyName.ProjectName.HttpApi.Host.deps.json" />
<_ContentIncludedByDefault Remove="publish\CompanyName.ProjectName.HttpApi.Host.runtimeconfig.json" />
<_ContentIncludedByDefault Remove="publish\publish\appsettings.Development.json" />
<_ContentIncludedByDefault Remove="publish\publish\appsettings.json" />
<_ContentIncludedByDefault Remove="publish\publish\appsettings.Production.json" />
<_ContentIncludedByDefault Remove="publish\publish\appsettings.secrets.json" />
<_ContentIncludedByDefault Remove="publish\publish\CompanyName.ProjectName.HttpApi.Host.deps.json" />
<_ContentIncludedByDefault Remove="publish\publish\CompanyName.ProjectName.HttpApi.Host.runtimeconfig.json" />
<_ContentIncludedByDefault Remove="publish\publish\publish\appsettings.Development.json" />
<_ContentIncludedByDefault Remove="publish\publish\publish\appsettings.json" />
<_ContentIncludedByDefault Remove="publish\publish\publish\appsettings.secrets.json" />
<_ContentIncludedByDefault Remove="publish\publish\publish\CompanyName.ProjectName.HttpApi.Host.deps.json" />
<_ContentIncludedByDefault Remove="publish\publish\publish\CompanyName.ProjectName.HttpApi.Host.runtimeconfig.json" />
<_ContentIncludedByDefault Remove="publish\publish\publish\appsettings.Production.json" />
</ItemGroup>
</Project>

2
aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/Controllers/HomeController.cs

@ -7,7 +7,7 @@ namespace CompanyName.ProjectName.Controllers
{
public ActionResult Index()
{
return Redirect("~/swagger");
return Redirect("/Login");
}
}
}

161
aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/Pages/Login.cshtml

@ -0,0 +1,161 @@
@page
@model CompanyName.ProjectName.Pages.Login
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<title>后台服务登录</title>
<link href="http://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<link href="http://cdn.bootcss.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-offset-3 col-md-6">
<form class="form-horizontal" method="post">
@Html.AntiForgeryToken()
<span class="heading">后台服务登录</span>
<div class="form-group">
<input type="text" class="form-control" name="userName" placeholder="用户名">
<i class="fa fa-user"></i>
</div>
<div class="form-group help">
<input type="password" class="form-control" name="password" placeholder="密码">
<i class="fa fa-lock"></i>
</div>
<div class="form-group">
<button type="submit" class="btn btn-default">登录</button>
</div>
</form>
</div>
</div>
</div>
</body>
</html>
<style>
.row {
width: 800 px;
height: auto;
margin: auto;
box-sizing: border-box;
transform: translate(0, 50%);
}
.form-horizontal {
background: #fff;
padding-bottom: 40px;
border-radius: 15px;
text-align: center;
}
.form-horizontal .heading {
display: block;
font-size: 35px;
font-weight: 700;
padding: 35px 0;
border-bottom: 1px solid #f0f0f0;
margin-bottom: 30px;
}
.form-horizontal .form-group {
padding: 0 40px;
margin: 0 0 25px 0;
position: relative;
}
.form-horizontal .form-control {
background: #f0f0f0;
border: none;
border-radius: 20px;
box-shadow: none;
padding: 0 20px 0 45px;
height: 40px;
transition: all 0.3s ease 0s;
}
.form-horizontal .form-control:focus {
background: #e0e0e0;
box-shadow: none;
outline: 0 none;
}
.form-horizontal .form-group i {
position: absolute;
top: 12px;
left: 60px;
font-size: 17px;
color: #c8c8c8;
transition: all 0.5s ease 0s;
}
.form-horizontal .form-control:focus + i {
color: #00b4ef;
}
.form-horizontal .fa-question-circle {
display: inline-block;
position: absolute;
top: 12px;
right: 60px;
font-size: 20px;
color: #808080;
transition: all 0.5s ease 0s;
}
.form-horizontal .fa-question-circle:hover {
color: #000;
}
.form-horizontal .main-checkbox {
float: left;
width: 20px;
height: 20px;
background: #11a3fc;
border-radius: 50%;
position: relative;
margin: 5px 0 0 5px;
border: 1px solid #11a3fc;
}
.form-horizontal .main-checkbox label {
width: 20px;
height: 20px;
position: absolute;
top: 0;
left: 0;
cursor: pointer;
}
.form-horizontal .main-checkbox label:after {
content: "";
width: 10px;
height: 5px;
position: absolute;
top: 5px;
left: 4px;
border: 3px solid #fff;
border-top: none;
border-right: none;
background: transparent;
opacity: 0;
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg);
}
.form-horizontal .main-checkbox input[type="checkbox"] {
visibility: hidden;
}
.form-horizontal .main-checkbox input[type="checkbox"]:checked + label:after {
opacity: 1;
}
.form-horizontal .text {
float: left;
margin-left: 7px;
line-height: 20px;
padding-top: 5px;
text-transform: capitalize;
}
.form-horizontal .btn {
text-align: center;
font-size: 14px;
color: #fff;
background: #00b4ef;
border-radius: 30px;
padding: 10px 25px;
border: none;
text-transform: capitalize;
transition: all 0.5s ease 0s;
}
</style>

67
aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/Pages/Login.cshtml.cs

@ -0,0 +1,67 @@
using System;
using System.Threading.Tasks;
using CompanyName.ProjectName.Users;
using CompanyName.ProjectName.Users.Dtos;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
namespace CompanyName.ProjectName.Pages
{
public class Login : PageModel
{
private readonly IAccountAppService _accountAppService;
private readonly ILogger<Login> _logger;
private readonly IHostEnvironment _hostEnvironment;
public Login(IAccountAppService accountAppService, ILogger<Login> logger, IHostEnvironment hostEnvironment)
{
_accountAppService = accountAppService;
_logger = logger;
_hostEnvironment = hostEnvironment;
}
public void OnGet()
{
}
public async Task OnPost()
{
string userName = Request.Form["userName"];
string password = Request.Form["password"];
if (userName.IsNullOrWhiteSpace() || password.IsNullOrWhiteSpace())
{
Response.Redirect("/Login");
}
try
{
var options = new CookieOptions
{
Expires = DateTime.Now.AddHours(2),
SameSite = SameSiteMode.Unspecified,
};
if (!_hostEnvironment.IsDevelopment())
{
// 设置cookies domain
options.Domain = "ProjectName.cn";
}
var result = await _accountAppService.LoginAsync(new LoginInput()
{ Name = userName, Password = password });
Response.Cookies.Append(ProjectNameHttpApiHostConsts.DefaultCookieName, result.Token,options);
}
catch (Exception e)
{
_logger.LogError($"登录失败:{e.Message}");
Response.Redirect("/Login");
}
Response.Redirect("/monitor");
}
}
}

173
aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/Pages/Monitor.cshtml

@ -0,0 +1,173 @@
@page
@using CompanyName.ProjectName
@model CompanyName.ProjectName.Pages.Monitor
@{
Layout = null;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet"/>
<title>后端服务</title>
</head>
<body>
<div class="container projects">
<div class="projects-header page-header">
<h2>后端服务列表</h2>
@* <p>这些项目或者是对Bootstrap进行了有益的补充,或者是基于Bootstrap开发的</p> *@
</div>
<div class="row">
<div class="col-sm-6 col-md-4 col-lg-3">
<div class="thumbnail" style="height: 180px">
<a href="@ProjectNameHttpApiHostConsts.SwaggerUiEndPoint" target="_blank">
<img class="lazy" src="/images/swagger.png" width="300" height="150"/>
</a>
<div class="caption">
<h3>
<a href="@ProjectNameHttpApiHostConsts.SwaggerUiEndPoint" target="_blank">SwaggerUI</a>
</h3>
</div>
</div>
</div>
<div class="col-sm-6 col-md-4 col-lg-3">
<div class="thumbnail" style="height: 180px">
<a href="@ProjectNameHttpApiHostConsts.CapDashboardEndPoint" target="_blank">
<img class="lazy" src="/images/cap.png" width="300" height="150"/>
</a>
<div class="caption">
<h3>
<a href="@ProjectNameHttpApiHostConsts.CapDashboardEndPoint" target="_blank">CAP面板</a>
</h3>
</div>
</div>
</div>
<div class="col-sm-6 col-md-4 col-lg-3">
<div class="thumbnail" style="height: 180px">
<a href="@ProjectNameHttpApiHostConsts.HangfireDashboardEndPoint" target="_blank">
<img class="lazy" src="/images/hangfire.png" width="300" height="150"/>
</a>
<div class="caption">
<h3>
<a href="@ProjectNameHttpApiHostConsts.HangfireDashboardEndPoint" target="_blank">Hangfire面板</a>
</h3>
</div>
</div>
</div>
<div class="col-sm-6 col-md-4 col-lg-3">
<div class="thumbnail" style="height: 180px">
<a href="@ProjectNameHttpApiHostConsts.MoreEndPoint" target="_blank">
<img class="lazy" src="/images/more.png" width="300" height="150"/>
</a>
<div class="caption">
<h3>
<a href="@ProjectNameHttpApiHostConsts.MoreEndPoint" target="_blank">了解更多...</a>
</h3>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
<style>
*:before,
*:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.container {
width: 1170 px;
padding-right: 15 px;
padding-left: 15 px;
margin-right: auto;
margin-left: auto;
}
.projects-header {
width: 60%;
text-align: center;
font-weight: 200;
display: block;
margin: 60 px auto 40 px !important;
}
.page-header {
padding-bottom: 9px;
margin: 40px auto;
border-bottom: 1 px solid #eee;
}
.projects-header h2 {
font-size: 42px;
letter-spacing: -1px;
}
h2 {
margin-top: 20 px;
margin-bottom: 10 px;
font-weight: 500;
line-height: 1.1;
color: inherit;
/* text-align: center; */
}
p {
margin: 0 0 10 px;
}
.row {
margin-right: -15 px;
margin-left: -15 px;
}
.col-lg-3 {
width: 25%;
}
.projects .thumbnail {
display: block;
margin-right: auto;
margin-left: auto;
text-align: center;
margin-bottom: 30 px;
border-radius: 0;
}
.thumbnail {
display: block;
padding: 4px;
line-height: 1.42857143;
background-color: #fff;
border: 1 px solid #ddd;
.transition(border 0.2s ease-in-out);
}
a {
color: #337ab7;
text-decoration: none;
background-color: transparent;
}
.projects .thumbnail img {
max-width: 100%;
height: auto;
}
.thumbnail a > img,
.thumbnail > img {
margin-right: auto;
margin-left: auto;
}
img {
vertical-align: middle;
}
/* .projects .thumbnail .caption {
overflow-y: hidden;
color: #555;
} */
.caption {
padding: 9px;
overflow-y: hidden;
color: #555;
}
</style>

12
aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/Pages/Monitor.cshtml.cs

@ -0,0 +1,12 @@
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace CompanyName.ProjectName.Pages
{
public class Monitor : PageModel
{
public void OnGet()
{
}
}
}

34
aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostConsts.cs

@ -0,0 +1,34 @@
namespace CompanyName.ProjectName
{
public class ProjectNameHttpApiHostConsts
{
/// <summary>
/// 跨域策略名
/// </summary>
public const string DefaultCorsPolicyName = "Default";
/// <summary>
/// Cookies名称
/// </summary>
public const string DefaultCookieName = "CompanyName.ProjectName.Http.Api";
/// <summary>
/// SwaggerUi 端点
/// </summary>
public const string SwaggerUiEndPoint = "/swagger";
/// <summary>
/// Hangfire 端点
/// </summary>
public const string HangfireDashboardEndPoint = "/hangfire";
/// <summary>
/// CAP 端点
/// </summary>
public const string CapDashboardEndPoint = "/cap";
public const string MoreEndPoint = "https://doc.cncore.club/";
}
}

38
aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.cs

@ -37,6 +37,7 @@ using Savorboard.CAP.InMemoryMessageQueue;
using Serilog;
using Swashbuckle.AspNetCore.SwaggerUI;
using Volo.Abp.AspNetCore.MultiTenancy;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic;
using Volo.Abp.Caching;
namespace CompanyName.ProjectName
@ -55,11 +56,11 @@ namespace CompanyName.ProjectName
typeof(AbpBackgroundJobsHangfireModule),
typeof(LionAbpCapModule),
typeof(AbpAspNetCoreMultiTenancyModule),
typeof(SharedHostingMicroserviceModule)
typeof(SharedHostingMicroserviceModule),
typeof(AbpAspNetCoreMvcUiBasicThemeModule)
)]
public class ProjectNameHttpApiHostModule : AbpModule
{
private const string DefaultCorsPolicyName = "Default";
public override void OnPostApplicationInitialization(
ApplicationInitializationContext context)
@ -88,7 +89,7 @@ namespace CompanyName.ProjectName
app.UseCorrelationId();
app.UseStaticFiles();
app.UseRouting();
app.UseCors(DefaultCorsPolicyName);
app.UseCors(ProjectNameHttpApiHostConsts.DefaultCookieName);
app.UseAuthentication();
if (MultiTenancyConsts.IsEnabled)
@ -113,8 +114,8 @@ namespace CompanyName.ProjectName
opts.EnrichDiagnosticContext = SerilogToEsExtensions.EnrichFromRequest;
});
app.UseUnitOfWork();
app.UseConfiguredEndpoints();
app.UseEndpoints(endpoints => { endpoints.MapHealthChecks("/health"); });
app.UseConfiguredEndpoints(endpoints => { endpoints.MapHealthChecks("/health"); });
app.UseHangfireDashboard("/hangfire", new DashboardOptions()
{
Authorization = new[] { new CustomHangfireAuthorizeFilter() },
@ -185,36 +186,35 @@ namespace CompanyName.ProjectName
{
OnMessageReceived = currentContext =>
{
var accessToken = currentContext.Request.Query["access_token"];
// 如果请求来自signalr
var path = currentContext.HttpContext.Request.Path;
if (!path.StartsWithSegments("/login"))
{
var accessToken =
currentContext.Request.Cookies[
ProjectNameHttpApiHostConsts.DefaultCookieName] ;
if (!accessToken.IsNullOrWhiteSpace())
{
if (path.StartsWithSegments("/signalr"))
{
currentContext.Token = accessToken;
}
currentContext.Request.Headers.Add("Authorization",
$"Bearer {accessToken}");
// 如果请求来自hangfire 或者cap
if (path.ToString().StartsWith("/hangfire") ||
path.ToString().StartsWith("/cap"))
{
currentContext.HttpContext.Response.Headers.Remove(
"X-Frame-Options");
if (!string.IsNullOrEmpty(accessToken))
{
currentContext.Token = accessToken;
currentContext.HttpContext.Response.Cookies
.Append("ProjectNameCookie", accessToken);
}
else
{
var cookies = currentContext.Request.Cookies;
if (cookies.ContainsKey("ProjectNameCookie"))
{
currentContext.Token = cookies["ProjectNameCookie"];
currentContext.Token = !string.IsNullOrEmpty(accessToken) ? accessToken : accessToken;
}
}
}
return Task.CompletedTask;
}
};

2
aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/Properties/launchSettings.json

@ -2,7 +2,7 @@
"profiles": {
"CompanyName.ProjectName.HttpApi.Host": {
"commandName": "Project",
"launchBrowser": false,
"launchBrowser": true,
"applicationUrl": "http://localhost:44315",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"

BIN
aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/wwwroot/images/cap.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/wwwroot/images/hangfire.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/wwwroot/images/more.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/wwwroot/images/swagger.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

BIN
aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/wwwroot/images/xxx-job.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

6
aspnet-core/services/host/CompanyName.ProjectName.IdentityServer/CompanyName.ProjectName.IdentityServer.csproj

@ -32,9 +32,9 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Serilog.AspNetCore" Version="4.1.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.4.0" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="5.0.*" />
<PackageReference Include="Serilog.AspNetCore" Version="$(SerilogAspNetCoreVersion)" />
<PackageReference Include="Serilog.Sinks.Async" Version="$(SerilogSinksAsyncVersion)" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="$(MicrosoftVersion)" />
</ItemGroup>
<ItemGroup>

2
aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/CompanyName.ProjectName.Application.Contracts.csproj

@ -14,7 +14,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="EasyAbp.Abp.SettingUi.Application.Contracts" Version="1.5.0" />
<PackageReference Include="EasyAbp.Abp.SettingUi.Application.Contracts" Version="$(EasyAbpSttingVersion)" />
<PackageReference Include="Volo.Abp.ObjectExtending" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.Account.Application.Contracts" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.Identity.Application.Contracts" Version="$(AbpPackageVersion)" />

4
aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/Permissions/ProjectNamePermissionDefinitionProvider.cs

@ -17,10 +17,6 @@ namespace CompanyName.ProjectName.Permissions
var auditManagement =
abpIdentityGroup.AddPermission(ProjectNamePermissions.SystemManagement.AuditLog, L("Permission:AuditLogManagement"));
var hangfireManagement =
abpIdentityGroup.AddPermission(ProjectNamePermissions.SystemManagement.Hangfire, L("Permission:HangfireManagement"));
var capManagement = abpIdentityGroup.AddPermission(ProjectNamePermissions.SystemManagement.Cap, L("Permission:CapManagement"));
var esManagement = abpIdentityGroup.AddPermission(ProjectNamePermissions.SystemManagement.ES, L("Permission:ESManagement"));

2
aspnet-core/services/src/CompanyName.ProjectName.Application.Contracts/Permissions/ProjectNamePermissions.cs

@ -19,8 +19,6 @@ namespace CompanyName.ProjectName.Permissions
public const string Default = "System";
public const string UserEnable = Default + ".Users.Enable";
public const string AuditLog = Default + ".AuditLog";
public const string Hangfire = Default + ".Hangfire";
public const string Cap = Default + ".Cap";
public const string ES = Default + ".ES";
}

2
aspnet-core/services/src/CompanyName.ProjectName.Application/CompanyName.ProjectName.Application.csproj

@ -15,7 +15,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="EasyAbp.Abp.SettingUi.Application" Version="1.5.0" />
<PackageReference Include="EasyAbp.Abp.SettingUi.Application" Version="$(EasyAbpSttingVersion)" />
<PackageReference Include="Volo.Abp.Account.Application" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.Identity.Application" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.PermissionManagement.Application" Version="$(AbpPackageVersion)" />

11
aspnet-core/services/src/CompanyName.ProjectName.DbMigrator/CompanyName.ProjectName.DbMigrator.csproj

@ -19,14 +19,15 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Serilog.Extensions.Logging" Version="3.0.1" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.4.0" />
<PackageReference Include="Serilog.Sinks.File" Version="4.1.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Serilog.Extensions.Logging" Version="$(SerilogExtensionsLoggingVersion)" />
<PackageReference Include="Serilog.Sinks.Async" Version="$(SerilogSinksAsyncVersion)" />
<PackageReference Include="Serilog.Sinks.File" Version="$(SerilogSinksFileVersion)" />
<PackageReference Include="Serilog.Sinks.Console" Version="$(SerilogSinksConsoleVersion)" />
<PackageReference Include="Volo.Abp.Autofac" Version="$(AbpPackageVersion)" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Autofac" Version="$(AbpPackageVersion)" />
<ProjectReference Include="..\CompanyName.ProjectName.Application.Contracts\CompanyName.ProjectName.Application.Contracts.csproj" />
<ProjectReference Include="..\CompanyName.ProjectName.EntityFrameworkCore\CompanyName.ProjectName.EntityFrameworkCore.csproj" />
</ItemGroup>

7
aspnet-core/services/src/CompanyName.ProjectName.Domain.Shared/CompanyName.ProjectName.Domain.Shared.csproj

@ -9,7 +9,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="EasyAbp.Abp.SettingUi.Domain.Shared" Version="1.5.0" />
<PackageReference Include="EasyAbp.Abp.SettingUi.Domain.Shared" Version="$(EasyAbpSttingVersion)" />
<PackageReference Include="Volo.Abp.Identity.Domain.Shared" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.IdentityServer.Domain.Shared" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.BackgroundJobs.Domain.Shared" Version="$(AbpPackageVersion)" />
@ -18,15 +18,14 @@
<PackageReference Include="Volo.Abp.FeatureManagement.Domain.Shared" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.Shared" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.SettingManagement.Domain.Shared" Version="$(AbpPackageVersion)" />
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="$(MicrosoftVersion)" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Localization\ProjectName\*.json" />
<Content Remove="Localization\ProjectName\*.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="5.0.*" />
</ItemGroup>
<ItemGroup>

7
aspnet-core/services/src/CompanyName.ProjectName.ElasticsearchRepository/CompanyName.ProjectName.ElasticsearchRepository.csproj

@ -5,12 +5,13 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Core" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Core" Version="$(AbpPackageVersion)"/>
<PackageReference Include="NEST" Version="$(NESTVersion)"/>
</ItemGroup>
<ItemGroup>
<PackageReference Include="NEST" Version="7.14.1" />
<ProjectReference Include="..\CompanyName.ProjectName.Domain\CompanyName.ProjectName.Domain.csproj" />
<ProjectReference Include="..\CompanyName.ProjectName.Domain\CompanyName.ProjectName.Domain.csproj"/>
</ItemGroup>
</Project>

2
aspnet-core/services/src/CompanyName.ProjectName.EntityFrameworkCore/CompanyName.ProjectName.EntityFrameworkCore.csproj

@ -21,7 +21,7 @@
<PackageReference Include="Volo.Abp.FeatureManagement.EntityFrameworkCore" Version="$(AbpPackageVersion)"/>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.7">
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="$(MicrosoftVersion)" >
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
<PrivateAssets>compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native</PrivateAssets>
</PackageReference>

4
aspnet-core/services/src/CompanyName.ProjectName.FreeSqlRepository/CompanyName.ProjectName.FreeSqlRepository.csproj

@ -4,8 +4,8 @@
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="FreeSql" Version="2.5.200" />
<PackageReference Include="FreeSql.Provider.MySql" Version="2.5.200" />
<PackageReference Include="FreeSql" Version="$(FreeSqlVersion)" />
<PackageReference Include="FreeSql.Provider.MySql" Version="$(FreeSqlVersion)" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\CompanyName.ProjectName.Domain\CompanyName.ProjectName.Domain.csproj" />

2
aspnet-core/services/src/CompanyName.ProjectName.HttpApi/CompanyName.ProjectName.HttpApi.csproj

@ -14,7 +14,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.1.4" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="$(SwashbuckleAspNetCoreAnnotationsVersion)" />
<PackageReference Include="Volo.Abp.Account.HttpApi" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.Identity.HttpApi" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.PermissionManagement.HttpApi" Version="$(AbpPackageVersion)" />

2
aspnet-core/services/test/CompanyName.ProjectName.Application.Tests/CompanyName.ProjectName.Application.Tests.csproj

@ -12,7 +12,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkVersion)" />
</ItemGroup>
</Project>

2
aspnet-core/services/test/CompanyName.ProjectName.Domain.Tests/CompanyName.ProjectName.Domain.Tests.csproj

@ -12,7 +12,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkVersion)" />
</ItemGroup>
</Project>

2
aspnet-core/services/test/CompanyName.ProjectName.EntityFrameworkCore.Tests/CompanyName.ProjectName.EntityFrameworkCore.Tests.csproj

@ -14,7 +14,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkVersion)" />
</ItemGroup>
</Project>

4
aspnet-core/services/test/CompanyName.ProjectName.HttpApi.Client.ConsoleTestApp/CompanyName.ProjectName.HttpApi.Client.ConsoleTestApp.csproj

@ -22,8 +22,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Hosting" Version="5.0.*" />
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="5.0.*" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="$(MicrosoftExtensionsHttpVersion)" />
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="$(MicrosoftExtensionsHttpVersion)" />
</ItemGroup>
</Project>

12
aspnet-core/services/test/CompanyName.ProjectName.TestBase/CompanyName.ProjectName.TestBase.csproj

@ -15,12 +15,12 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.1" />
<PackageReference Include="NSubstitute" Version="4.2.2" />
<PackageReference Include="Shouldly" Version="4.0.3" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.extensibility.execution" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkVersion)" />
<PackageReference Include="NSubstitute" Version="$(NSubstituteVersion)" />
<PackageReference Include="Shouldly" Version="$(ShouldlyVersion)" />
<PackageReference Include="xunit" Version="$(XunitVersion)" />
<PackageReference Include="xunit.extensibility.execution" Version="$(XunitVersion)" />
<PackageReference Include="xunit.runner.visualstudio" Version="$(Xunitrunnervisualstudio)" />
</ItemGroup>
</Project>

8
aspnet-core/shared/CompanyName.ProjectName.Shared.Hosting.Gateways/CompanyName.ProjectName.Shared.Hosting.Gateways.csproj

@ -4,14 +4,14 @@
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Ocelot" Version="17.0.0" />
<PackageReference Include="Ocelot.Provider.Consul" Version="17.0.0" />
<PackageReference Include="Ocelot.Provider.Polly" Version="17.0.0" />
<PackageReference Include="Ocelot" Version="$(OcelotVersion)" />
<PackageReference Include="Ocelot.Provider.Consul" Version="$(OcelotVersion)" />
<PackageReference Include="Ocelot.Provider.Polly" Version="$(OcelotVersion)" />
<PackageReference Include="Volo.Abp" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.AspNetCore" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.Autofac" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.Core" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.Swashbuckle" Version="$(AbpPackageVersion)" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.1.4" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="$(SwashbuckleAspNetCoreAnnotationsVersion)" />
</ItemGroup>
</Project>

10
aspnet-core/shared/CompanyName.ProjectName.Shared.Hosting.Gateways/SharedHostingGatewayModule.cs

@ -17,6 +17,7 @@ namespace CompanyName.ProjectName.Shared.Hosting.Gateways
public override void ConfigureServices(ServiceConfigurationContext context)
{
ConfigureOcelot(context);
ConfigureHealthChecks(context);
}
/// <summary>
@ -27,6 +28,13 @@ namespace CompanyName.ProjectName.Shared.Hosting.Gateways
var configuration = context.Services.GetConfiguration();
context.Services.AddOcelot(configuration).AddConsul().AddPolly();
}
/// <summary>
/// 健康检查
/// </summary>
/// <param name="context"></param>
private void ConfigureHealthChecks(ServiceConfigurationContext context)
{
context.Services.AddHealthChecks();
}
}
}

12
aspnet-core/shared/CompanyName.ProjectName.Shared.Hosting.Microservices/CompanyName.ProjectName.Shared.Hosting.Microservices.csproj

@ -5,17 +5,15 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Ocelot.Provider.Polly" Version="17.0.0" />
<PackageReference Include="Ocelot.Provider.Consul" Version="17.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="6.2.3" />
<PackageReference Include="Ocelot.Provider.Polly" Version="$(OcelotVersion)" />
<PackageReference Include="Ocelot.Provider.Consul" Version="$(OcelotVersion)" />
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="$(SwaggerUIVersion)" />
<PackageReference Include="Volo.Abp" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.AspNetCore" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.Autofac" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.Core" Version="$(AbpPackageVersion)" />
<PackageReference Include="Volo.Abp.Swashbuckle" Version="$(AbpPackageVersion)" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.1.4" />
<PackageReference Include="AspNetCore.HealthChecks.MySql" Version="5.0.1" />
<PackageReference Include="AspNetCore.HealthChecks.Redis" Version="5.0.2" />
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="5.0.7" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="$(SwashbuckleAspNetCoreAnnotationsVersion)" />
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="$(MicrosoftVersion)" />
</ItemGroup>
</Project>

Loading…
Cancel
Save