using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json.Linq;
namespace Vit.Extensions
{
public static partial class IWebHostBuilderExtensions_UseVitConfig
{
///
///
///
///
///
public static IWebHostBuilder UseVitConfig(this IWebHostBuilder data)
{
data.ConfigureServices(delegate (Microsoft.AspNetCore.Hosting.WebHostBuilderContext context, Microsoft.Extensions.DependencyInjection.IServiceCollection services)
{
services.Configure(delegate (Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions options)
{
//限制body的大小
options.Limits.MaxRequestBodySize = Vit.Core.Util.ConfigurationManager.ConfigurationManager
.Instance.GetByPath("Vit.Kestrel.MaxRequestBodySize");
});
//解决Multipart body length limit 134217728 exceeded
services.Configure(x =>
{
var ValueLengthLimit = Vit.Core.Util.ConfigurationManager.ConfigurationManager.Instance.GetByPath("Vit.Kestrel.ValueLengthLimit");
if (ValueLengthLimit.HasValue)
{
x.ValueLengthLimit = ValueLengthLimit.Value;
}
var MultipartBodyLengthLimit = Vit.Core.Util.ConfigurationManager.ConfigurationManager.Instance.GetByPath("Vit.Kestrel.MultipartBodyLengthLimit");
if (MultipartBodyLengthLimit.HasValue)
{
x.MultipartBodyLengthLimit = MultipartBodyLengthLimit.Value;// In case of multipart
}
});
});
if (null == Vit.Core.Util.ConfigurationManager.ConfigurationManager.Instance.Get("Logging"))
{
data.ConfigureLogging((Microsoft.Extensions.Logging.ILoggingBuilder logging) =>
{
logging.ClearProviders();
});
}
return data;
}
}
}