diff options
author | John Luo <johluo@microsoft.com> | 2021-05-20 21:49:47 +0300 |
---|---|---|
committer | John Luo <johluo@microsoft.com> | 2021-05-20 21:49:47 +0300 |
commit | b4e9e5e520b1db4565931fca06f3f8d45ebb68f8 (patch) | |
tree | e443895dec2049f3882be9a15bb3ec3ed84fba7f | |
parent | 582c3f2d340b861a886a468f203b10ddb06886db (diff) |
Separate resource limits to own assemblyjohluo/rate-limits
12 files changed, 21 insertions, 0 deletions
diff --git a/eng/Build.props b/eng/Build.props index a2fb171c29..88a27ce32c 100644 --- a/eng/Build.props +++ b/eng/Build.props @@ -185,6 +185,7 @@ $(RepoRoot)src\WebEncoders\**\*.csproj; $(RepoRoot)src\HealthChecks\**\*.csproj; $(RepoRoot)src\Testing\**\*.csproj; + $(RepoRoot)src\ResourceLimits\**\*.csproj; $(RepoRoot)src\ProjectTemplates\*\*.csproj; $(RepoRoot)src\ProjectTemplates\testassets\*\*.csproj; " @@ -225,6 +226,7 @@ $(RepoRoot)src\WebEncoders\**\src\*.csproj; $(RepoRoot)src\HealthChecks\**\src\*.csproj; $(RepoRoot)src\Testing\**\src\*.csproj; + $(RepoRoot)src\ResourceLimits\**\*.csproj; " Exclude=" @(ProjectToBuild); diff --git a/eng/ProjectReferences.props b/eng/ProjectReferences.props index acab068128..f7758cd8f6 100644 --- a/eng/ProjectReferences.props +++ b/eng/ProjectReferences.props @@ -163,5 +163,6 @@ <ProjectReferenceProvider Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" ProjectPath="$(RepoRoot)src\HealthChecks\Abstractions\src\Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.csproj" /> <ProjectReferenceProvider Include="Microsoft.Extensions.Diagnostics.HealthChecks" ProjectPath="$(RepoRoot)src\HealthChecks\HealthChecks\src\Microsoft.Extensions.Diagnostics.HealthChecks.csproj" /> <ProjectReferenceProvider Include="Microsoft.AspNetCore.Testing" ProjectPath="$(RepoRoot)src\Testing\src\Microsoft.AspNetCore.Testing.csproj" /> + <ProjectReferenceProvider Include="System.Threading.ResourceLimits" ProjectPath="$(RepoRoot)src\ResourceLimits\src\System.Threading.ResourceLimits.csproj" /> </ItemGroup> </Project> diff --git a/eng/SharedFramework.Local.props b/eng/SharedFramework.Local.props index 49d28f78f0..d242e36b49 100644 --- a/eng/SharedFramework.Local.props +++ b/eng/SharedFramework.Local.props @@ -35,6 +35,7 @@ <AspNetCoreAppReferenceAndPackage Include="Microsoft.Extensions.WebEncoders" /> <AspNetCoreAppReferenceAndPackage Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" /> <AspNetCoreAppReferenceAndPackage Include="Microsoft.Extensions.Diagnostics.HealthChecks" /> + <AspNetCoreAppReferenceAndPackage Include="System.Threading.ResourceLimits" /> <!-- These assemblies are only in the shared framework --> <AspNetCoreAppReference Include="Microsoft.AspNetCore" /> diff --git a/src/Middleware/RequestLimiter/src/Microsoft.AspNetCore.RequestLimiter.csproj b/src/Middleware/RequestLimiter/src/Microsoft.AspNetCore.RequestLimiter.csproj index 969fa64942..580d624e12 100644 --- a/src/Middleware/RequestLimiter/src/Microsoft.AspNetCore.RequestLimiter.csproj +++ b/src/Middleware/RequestLimiter/src/Microsoft.AspNetCore.RequestLimiter.csproj @@ -12,6 +12,7 @@ <ItemGroup> <Reference Include="Microsoft.AspNetCore.Http.Abstractions" /> <Reference Include="Microsoft.Extensions.Logging.Abstractions" /> + <Reference Include="System.Threading.ResourceLimits" /> </ItemGroup> </Project> diff --git a/src/Middleware/RequestLimiter/src/RequestLimiterMiddleware.cs b/src/Middleware/RequestLimiter/src/RequestLimiterMiddleware.cs index adb8ddb95d..4655859ae6 100644 --- a/src/Middleware/RequestLimiter/src/RequestLimiterMiddleware.cs +++ b/src/Middleware/RequestLimiter/src/RequestLimiterMiddleware.cs @@ -60,6 +60,8 @@ namespace Microsoft.AspNetCore.RequestLimiter // TODO: error } + + if (registration.ResolveLimiter != null) { var limiter = registration.ResolveLimiter(context.RequestServices); diff --git a/src/Http/Http.Abstractions/src/ResourceLimit/ConcurrencyLimiter.cs b/src/ResourceLimits/src/ConcurrencyLimiter.cs index c0c52c7415..91cccbaef3 100644 --- a/src/Http/Http.Abstractions/src/ResourceLimit/ConcurrencyLimiter.cs +++ b/src/ResourceLimits/src/ConcurrencyLimiter.cs @@ -4,6 +4,7 @@ using System.Diagnostics.CodeAnalysis; using System.Threading.Tasks; namespace System.Threading.ResourceLimits +{ public class ConcurrencyLimiter : ResourceLimiter { private long _resourceCount; diff --git a/src/Http/Http.Abstractions/src/ResourceLimit/IAggregatedResourceLimiter.cs b/src/ResourceLimits/src/IAggregatedResourceLimiter.cs index 486c9a6487..486c9a6487 100644 --- a/src/Http/Http.Abstractions/src/ResourceLimit/IAggregatedResourceLimiter.cs +++ b/src/ResourceLimits/src/IAggregatedResourceLimiter.cs diff --git a/src/Http/Http.Abstractions/src/ResourceLimit/IResourceLimiter.cs b/src/ResourceLimits/src/IResourceLimiter.cs index b338910f6b..b338910f6b 100644 --- a/src/Http/Http.Abstractions/src/ResourceLimit/IResourceLimiter.cs +++ b/src/ResourceLimits/src/IResourceLimiter.cs diff --git a/src/Http/Http.Abstractions/src/ResourceLimit/IResourceLimiterExtensions.cs b/src/ResourceLimits/src/IResourceLimiterExtensions.cs index a428e679f1..a428e679f1 100644 --- a/src/Http/Http.Abstractions/src/ResourceLimit/IResourceLimiterExtensions.cs +++ b/src/ResourceLimits/src/IResourceLimiterExtensions.cs diff --git a/src/Http/Http.Abstractions/src/ResourceLimit/Resource.cs b/src/ResourceLimits/src/Resource.cs index 70ad788fe3..70ad788fe3 100644 --- a/src/Http/Http.Abstractions/src/ResourceLimit/Resource.cs +++ b/src/ResourceLimits/src/Resource.cs diff --git a/src/ResourceLimits/src/System.Threading.ResourceLimits.csproj b/src/ResourceLimits/src/System.Threading.ResourceLimits.csproj new file mode 100644 index 0000000000..dc2b679816 --- /dev/null +++ b/src/ResourceLimits/src/System.Threading.ResourceLimits.csproj @@ -0,0 +1,12 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <Description>WIP</Description> + <TargetFrameworks>$(DefaultNetCoreTargetFramework)</TargetFrameworks> + <GenerateDocumentationFile>false</GenerateDocumentationFile> + <AddPublicApiAnalyzers>false</AddPublicApiAnalyzers> + <IsAspNetCoreApp>true</IsAspNetCoreApp> + <Nullable>enable</Nullable> + </PropertyGroup> + +</Project> diff --git a/src/Servers/Kestrel/Core/src/Microsoft.AspNetCore.Server.Kestrel.Core.csproj b/src/Servers/Kestrel/Core/src/Microsoft.AspNetCore.Server.Kestrel.Core.csproj index ede7d82a13..0c3b3dfa04 100644 --- a/src/Servers/Kestrel/Core/src/Microsoft.AspNetCore.Server.Kestrel.Core.csproj +++ b/src/Servers/Kestrel/Core/src/Microsoft.AspNetCore.Server.Kestrel.Core.csproj @@ -37,6 +37,7 @@ <Reference Include="Microsoft.Extensions.Options" /> <Reference Include="Microsoft.Net.Http.Headers" /> <Reference Include="System.Security.Cryptography.Cng" /> + <Reference Include="System.Threading.ResourceLimits" /> </ItemGroup> <ItemGroup> |