76 lines
2.9 KiB
C#
76 lines
2.9 KiB
C#
using System;
|
||
using System.Threading;
|
||
using System.Threading.Tasks;
|
||
using Hncore.Infrastructure.Common;
|
||
using Hncore.Infrastructure.Common.DingTalk;
|
||
using Hncore.Infrastructure.Extension;
|
||
using Microsoft.AspNetCore.Builder;
|
||
using Microsoft.AspNetCore.Hosting;
|
||
using Microsoft.Extensions.Logging;
|
||
using NLog.Extensions.Logging;
|
||
|
||
namespace Hncore.Infrastructure.WebApi
|
||
{
|
||
/// <summary>
|
||
/// 应用程序构建器扩展类
|
||
/// </summary>
|
||
///
|
||
public static class ApplicationBuilderExtend
|
||
{
|
||
/// <summary>
|
||
/// 初始化应用程序构建器
|
||
/// </summary>
|
||
/// <param name="app">当前应用程序构建器对象</param>
|
||
/// <param name="loggerFactory">日志工厂对象</param>
|
||
/// <returns>初始化后的应用程序构建器对象</returns>
|
||
/// <param name="applicationLifetime">应用程序生命周期对象</param>
|
||
///
|
||
public static IApplicationBuilder Init(this IApplicationBuilder app, ILoggerFactory loggerFactory,
|
||
IApplicationLifetime applicationLifetime)
|
||
{
|
||
loggerFactory.AddNLog(); //启用Nlog日志插件
|
||
|
||
app.UseErrorHandling(); //添加统一错误异常处理中间件(一个自定义类)
|
||
|
||
|
||
|
||
//启用Cors(跨域请求)支持(默认关闭状态)
|
||
|
||
app.UseCors(builder => builder
|
||
.SetIsOriginAllowed(host => true) //允许所有来源
|
||
.AllowAnyMethod() //允许任何请求方法(GET、POST、PUT、DELETE等)
|
||
.AllowAnyHeader() //允许任何请求头信息
|
||
.AllowCredentials() //允许跨域凭据
|
||
// .SetPreflightMaxAge(TimeSpan.FromDays(30)) //指定可以缓存预检请求的响应的时间为30天
|
||
.WithExposedHeaders("X-Suggested-Filename", "set-user-token", "set-user")
|
||
);
|
||
app.UseMvc(); //启用MVC
|
||
|
||
|
||
//向应用程序生命周期的“应用程序已完全启动”事件注册回调函数
|
||
applicationLifetime.ApplicationStarted.Register(OnAppStarted);
|
||
|
||
return app;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 应用程序完全启动完成处理回调函数
|
||
/// </summary>
|
||
///
|
||
private static void OnAppStarted()
|
||
{
|
||
//if (EnvironmentVariableHelper.IsAspNetCoreProduction)
|
||
//{
|
||
// DingTalkHelper.SendMessage(new MarkDownModel()
|
||
// {
|
||
// markdown = new markdown()
|
||
// {
|
||
// title = "应用已启动",
|
||
// text = "### 应用已启动\n\nhostname:" + EnvironmentVariableHelper.HostName + "\n\n" +
|
||
// DateTime.Now.Format("yyyy-MM-dd HH:mm:ss")
|
||
// }
|
||
// });
|
||
//}
|
||
}
|
||
}
|
||
} |