Skip to content

Commit de7b00c

Browse files
committed
Merged PR 47571: [release/8.0] Merge from public
Fixes merge conflicts ---- #### AI description (iteration 1) #### PR Classification Version update for package dependencies. #### PR Summary This pull request updates the version of various packages from 8.0.12 to 8.0.13. - `eng/Baseline.xml`: Updated package versions from 8.0.12 to 8.0.13 for multiple packages including `Microsoft.AspNetCore`, `Microsoft.Extensions`, and `Microsoft.JSInterop`. <!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->
2 parents 07e1152 + da91c0f commit de7b00c

File tree

22 files changed

+536
-380
lines changed

22 files changed

+536
-380
lines changed

.azure/pipelines/ci-public.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,7 @@ stages:
414414
jobName: Linux_musl_x64_build
415415
jobDisplayName: "Build: Linux Musl x64"
416416
agentOs: Linux
417-
container: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.19-WithNode
417+
container: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net8.0-build-amd64
418418
buildArgs:
419419
--arch x64
420420
--os-name linux-musl
@@ -449,7 +449,7 @@ stages:
449449
jobDisplayName: "Build: Linux Musl ARM"
450450
agentOs: Linux
451451
useHostedUbuntu: false
452-
container: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm-alpine
452+
container: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net8.0-build-amd64
453453
buildArgs:
454454
--arch arm
455455
--os-name linux-musl
@@ -483,7 +483,7 @@ stages:
483483
jobDisplayName: "Build: Linux Musl ARM64"
484484
agentOs: Linux
485485
useHostedUbuntu: false
486-
container: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm64-alpine
486+
container: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net8.0-build-amd64
487487
buildArgs:
488488
--arch arm64
489489
--os-name linux-musl
@@ -612,7 +612,7 @@ stages:
612612
parameters:
613613
platform:
614614
name: 'Managed'
615-
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8'
615+
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net8.0-build-amd64'
616616
buildScript: './eng/build.sh $(_PublishArgs) --no-build-nodejs --no-build-repo-tasks $(_InternalRuntimeDownloadArgs)'
617617
skipPublishValidation: true
618618
jobProperties:

.azure/pipelines/ci.yml

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -143,12 +143,8 @@ extends:
143143
tsa:
144144
enabled: true
145145
containers:
146-
alpine319WithNode:
147-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.19-WithNode
148-
mariner20CrossArmAlpine:
149-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm-alpine
150-
mariner20CrossArm64Alpine:
151-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm64-alpine
146+
azureLinux30Net8BuildAmd64:
147+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net8.0-build-amd64
152148
stages:
153149
- stage: build
154150
displayName: Build
@@ -483,7 +479,7 @@ extends:
483479
jobName: Linux_musl_x64_build
484480
jobDisplayName: "Build: Linux Musl x64"
485481
agentOs: Linux
486-
container: alpine319WithNode
482+
container: azureLinux30Net8BuildAmd64
487483
buildArgs:
488484
--arch x64
489485
--os-name linux-musl
@@ -518,7 +514,7 @@ extends:
518514
jobDisplayName: "Build: Linux Musl ARM"
519515
agentOs: Linux
520516
useHostedUbuntu: false
521-
container: mariner20CrossArmAlpine
517+
container: azureLinux30Net8BuildAmd64
522518
buildArgs:
523519
--arch arm
524520
--os-name linux-musl
@@ -552,7 +548,7 @@ extends:
552548
jobDisplayName: "Build: Linux Musl ARM64"
553549
agentOs: Linux
554550
useHostedUbuntu: false
555-
container: mariner20CrossArm64Alpine
551+
container: azureLinux30Net8BuildAmd64
556552
buildArgs:
557553
--arch arm64
558554
--os-name linux-musl

eng/Baseline.Designer.props

Lines changed: 237 additions & 237 deletions
Large diffs are not rendered by default.

eng/Baseline.xml

Lines changed: 106 additions & 106 deletions
Large diffs are not rendered by default.

eng/Version.Details.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -189,9 +189,9 @@
189189
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
190190
<Sha>d8ee7c837b53a52795d374c694ff2c72b62bcef0</Sha>
191191
</Dependency>
192-
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-externals" Version="8.0.0-alpha.1.25060.2">
192+
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-externals" Version="8.0.0-alpha.1.25104.1">
193193
<Uri>https://github.com/dotnet/source-build-externals</Uri>
194-
<Sha>c7cb4da26e74ef645e3e98fcb4534a7d66247a82</Sha>
194+
<Sha>dc30cd1ec22f198d658e011c14525d4d65873991</Sha>
195195
<SourceBuild RepoName="source-build-externals" ManagedOnly="true" />
196196
</Dependency>
197197
<Dependency Name="Microsoft.SourceBuild.Intermediate.symreader" Version="2.0.0-beta-23228-03">
@@ -338,9 +338,9 @@
338338
<Sha>9a1c3e1b7f0c8763d4c96e593961a61a72679a7b</Sha>
339339
<SourceBuild RepoName="xdt" ManagedOnly="true" />
340340
</Dependency>
341-
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="8.0.0-alpha.1.25060.2">
341+
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="8.0.0-alpha.1.25081.5">
342342
<Uri>https://github.com/dotnet/source-build-reference-packages</Uri>
343-
<Sha>f9542c50beaefc38dd9d7ec9ea38d54fd154f21a</Sha>
343+
<Sha>d73fc552386797322e84fa9b2ef5eaa5369de83c</Sha>
344344
<SourceBuild RepoName="source-build-reference-packages" ManagedOnly="true" />
345345
</Dependency>
346346
<!-- Not updated automatically -->

eng/Versions.props

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<AspNetCorePatchVersion>14</AspNetCorePatchVersion>
1212
<PreReleaseVersionIteration>
1313
</PreReleaseVersionIteration>
14-
<ValidateBaseline>false</ValidateBaseline>
14+
<ValidateBaseline>true</ValidateBaseline>
1515
<IdentityModelVersion Condition="'$(IsIdentityModelTestJob)' != 'true'">7.1.2</IdentityModelVersion>
1616
<IdentityModelVersion Condition="'$(IsIdentityModelTestJob)' == 'true'">7.*</IdentityModelVersion>
1717
<!--
@@ -166,9 +166,9 @@
166166
<MicrosoftDotNetBuildTasksTemplatingVersion>8.0.0-beta.25060.1</MicrosoftDotNetBuildTasksTemplatingVersion>
167167
<MicrosoftDotNetRemoteExecutorVersion>8.0.0-beta.25060.1</MicrosoftDotNetRemoteExecutorVersion>
168168
<!-- Packages from dotnet/source-build-externals -->
169-
<MicrosoftSourceBuildIntermediatesourcebuildexternalsVersion>8.0.0-alpha.1.25060.2</MicrosoftSourceBuildIntermediatesourcebuildexternalsVersion>
169+
<MicrosoftSourceBuildIntermediatesourcebuildexternalsVersion>8.0.0-alpha.1.25104.1</MicrosoftSourceBuildIntermediatesourcebuildexternalsVersion>
170170
<!-- Packages from dotnet/source-build-reference-packages -->
171-
<MicrosoftSourceBuildIntermediatesourcebuildreferencepackagesVersion>8.0.0-alpha.1.25060.2</MicrosoftSourceBuildIntermediatesourcebuildreferencepackagesVersion>
171+
<MicrosoftSourceBuildIntermediatesourcebuildreferencepackagesVersion>8.0.0-alpha.1.25081.5</MicrosoftSourceBuildIntermediatesourcebuildreferencepackagesVersion>
172172
<!-- Packages from dotnet/symreader -->
173173
<MicrosoftSourceBuildIntermediatesymreaderVersion>2.0.0-beta-23228-03</MicrosoftSourceBuildIntermediatesymreaderVersion>
174174
<!-- Packages from dotnet/runtime -->

eng/common/templates/steps/source-build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ steps:
4444
# in the default public locations.
4545
internalRuntimeDownloadArgs=
4646
if [ '$(dotnetbuilds-internal-container-read-token-base64)' != '$''(dotnetbuilds-internal-container-read-token-base64)' ]; then
47-
internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) --runtimesourcefeed https://dotnetbuilds.blob.core.windows.net/internal --runtimesourcefeedkey $(dotnetbuilds-internal-container-read-token-base64)'
47+
internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://ci.dot.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) --runtimesourcefeed https://ci.dot.net/internal --runtimesourcefeedkey $(dotnetbuilds-internal-container-read-token-base64)'
4848
fi
4949
5050
buildConfig=Release

eng/scripts/InstallJdk.ps1

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ $installDir = "$repoRoot\.tools\jdk\win-x64\"
2222
$javacExe = "$installDir\bin\javac.exe"
2323
$tempDir = "$repoRoot\obj"
2424
if (-not $JdkVersion) {
25-
$globalJson = Get-Content "$repoRoot\global.json" | ConvertFrom-Json
26-
$JdkVersion = $globalJson.'native-tools'.jdk
25+
$JdkVersion = "11.0.24"
2726
}
2827

2928
if (Test-Path $javacExe) {

eng/targets/Helix.Common.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
<!-- aspnetcore-quarantined-pr (quarantined-pr.yml) -->
3030
<ItemGroup>
3131
<HelixAvailableTargetQueue Include="Ubuntu.2004.Amd64.Open" Platform="Linux" />
32-
<HelixAvailableTargetQueue Include="OSX.13.Amd64.Open" Platform="OSX" />
32+
<HelixAvailableTargetQueue Include="OSX.15.Amd64.Open" Platform="OSX" />
3333
<HelixAvailableTargetQueue Include="Windows.11.Amd64.Client.Open" Platform="Windows" />
3434
<HelixAvailableTargetQueue Include="Windows.Amd64.VS2022.Pre.Open" Platform="Windows" />
3535
</ItemGroup>

eng/targets/Helix.targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<PropertyGroup Condition="'$(TestDependsOnPlaywright)' == 'true'">
1818
<SkipHelixQueues>
1919
$(HelixQueueAlmaLinux8);
20-
$(HelixQueueAlpine316);
20+
$(HelixQueueAlpine318);
2121
$(HelixQueueDebian12);
2222
$(HelixQueueFedora40);
2323
$(HelixQueueMariner);

global.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
22
"sdk": {
3-
"version": "8.0.112"
3+
"version": "8.0.113"
44
},
55
"tools": {
6-
"dotnet": "8.0.112",
6+
"dotnet": "8.0.113",
77
"runtimes": {
88
"dotnet/x86": [
99
"$(MicrosoftNETCoreBrowserDebugHostTransportVersion)"
@@ -29,6 +29,6 @@
2929
"Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.25060.1"
3030
},
3131
"native-tools": {
32-
"jdk": "11.0.24"
32+
"jdk": "latest"
3333
}
3434
}

src/Components/Components/src/CascadingValueSource.cs

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// The .NET Foundation licenses this file to you under the MIT license.
33

44
using System.Collections.Concurrent;
5+
using System.Runtime.CompilerServices;
56
using Microsoft.AspNetCore.Components.Rendering;
67

78
namespace Microsoft.AspNetCore.Components;
@@ -96,7 +97,16 @@ public Task NotifyChangedAsync()
9697
{
9798
tasks.Add(dispatcher.InvokeAsync(() =>
9899
{
99-
foreach (var subscriber in subscribers)
100+
var subscribersBuffer = new ComponentStateBuffer();
101+
var subscribersCount = subscribers.Count;
102+
var subscribersCopy = subscribersCount <= ComponentStateBuffer.Capacity
103+
? subscribersBuffer[..subscribersCount]
104+
: new ComponentState[subscribersCount];
105+
subscribers.CopyTo(subscribersCopy);
106+
107+
// We iterate over a copy of the list because new subscribers might get
108+
// added or removed during change notification
109+
foreach (var subscriber in subscribersCopy)
100110
{
101111
subscriber.NotifyCascadingValueChanged(ParameterViewLifetime.Unbound);
102112
}
@@ -174,4 +184,15 @@ void ICascadingValueSupplier.Unsubscribe(ComponentState subscriber, in Cascading
174184
}
175185
}
176186
}
187+
188+
[InlineArray(Capacity)]
189+
internal struct ComponentStateBuffer
190+
{
191+
public const int Capacity = 64;
192+
#pragma warning disable IDE0051 // Remove unused private members
193+
#pragma warning disable IDE0044 // Add readonly modifier
194+
private ComponentState _values;
195+
#pragma warning restore IDE0044 // Add readonly modifier
196+
#pragma warning restore IDE0051 // Remove unused private members
197+
}
177198
}

src/Components/Components/test/CascadingParameterTest.cs

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,61 @@ public async Task CanTriggerUpdatesOnCascadingValuesFromServiceProvider()
634634
await cascadingValueSource.NotifyChangedAsync(new MyParamType("Nobody is listening, but this shouldn't be an error"));
635635
}
636636

637+
[Fact]
638+
public async Task CanAddSubscriberDuringChangeNotification()
639+
{
640+
// Arrange
641+
var services = new ServiceCollection();
642+
var paramValue = new MyParamType("Initial value");
643+
var cascadingValueSource = new CascadingValueSource<MyParamType>(paramValue, isFixed: false);
644+
services.AddCascadingValue(_ => cascadingValueSource);
645+
var renderer = new TestRenderer(services.BuildServiceProvider());
646+
var component = new ConditionallyRenderSubscriberComponent()
647+
{
648+
RenderWhenEqualTo = "Final value",
649+
};
650+
651+
// Act/Assert: Initial render
652+
var componentId = await renderer.Dispatcher.InvokeAsync(() => renderer.AssignRootComponentId(component));
653+
renderer.RenderRootComponent(componentId);
654+
var firstBatch = renderer.Batches.Single();
655+
var diff = firstBatch.DiffsByComponentId[componentId].Single();
656+
Assert.Collection(diff.Edits,
657+
edit =>
658+
{
659+
Assert.Equal(RenderTreeEditType.PrependFrame, edit.Type);
660+
AssertFrame.Text(
661+
firstBatch.ReferenceFrames[edit.ReferenceFrameIndex],
662+
"CascadingParameter=Initial value");
663+
});
664+
Assert.Equal(1, component.NumRenders);
665+
666+
// Act: Second render
667+
paramValue.ChangeValue("Final value");
668+
await cascadingValueSource.NotifyChangedAsync();
669+
var secondBatch = renderer.Batches[1];
670+
var diff2 = secondBatch.DiffsByComponentId[componentId].Single();
671+
672+
// Assert: Subscriber can get added during change notification and receive the cascading value
673+
AssertFrame.Text(
674+
secondBatch.ReferenceFrames[diff2.Edits[0].ReferenceFrameIndex],
675+
"CascadingParameter=Final value");
676+
Assert.Equal(2, component.NumRenders);
677+
678+
// Assert: Subscriber can get added during change notification and receive the cascading value
679+
var nestedComponent = FindComponent<SimpleSubscriberComponent>(secondBatch, out var nestedComponentId);
680+
var nestedComponentDiff = secondBatch.DiffsByComponentId[nestedComponentId].Single();
681+
Assert.Collection(nestedComponentDiff.Edits,
682+
edit =>
683+
{
684+
Assert.Equal(RenderTreeEditType.PrependFrame, edit.Type);
685+
AssertFrame.Text(
686+
secondBatch.ReferenceFrames[edit.ReferenceFrameIndex],
687+
"CascadingParameter=Final value");
688+
});
689+
Assert.Equal(1, nestedComponent.NumRenders);
690+
}
691+
637692
[Fact]
638693
public async Task AfterSupplyingValueThroughNotifyChanged_InitialValueFactoryIsNotUsed()
639694
{
@@ -772,6 +827,40 @@ public void CanUseTryAddPatternForCascadingValuesInServiceCollection_CascadingVa
772827
Assert.Equal(2, services.Count());
773828
}
774829

830+
[Theory]
831+
[InlineData(0)]
832+
[InlineData(1)]
833+
[InlineData(CascadingValueSource<MyParamType>.ComponentStateBuffer.Capacity - 1)]
834+
[InlineData(CascadingValueSource<MyParamType>.ComponentStateBuffer.Capacity)]
835+
[InlineData(CascadingValueSource<MyParamType>.ComponentStateBuffer.Capacity + 1)]
836+
[InlineData(CascadingValueSource<MyParamType>.ComponentStateBuffer.Capacity * 2)]
837+
public async Task CanHaveManySubscribers(int numSubscribers)
838+
{
839+
// Arrange
840+
var services = new ServiceCollection();
841+
var paramValue = new MyParamType("Initial value");
842+
var cascadingValueSource = new CascadingValueSource<MyParamType>(paramValue, isFixed: false);
843+
services.AddCascadingValue(_ => cascadingValueSource);
844+
var renderer = new TestRenderer(services.BuildServiceProvider());
845+
var components = Enumerable.Range(0, numSubscribers).Select(_ => new SimpleSubscriberComponent()).ToArray();
846+
847+
// Act/Assert: Initial render
848+
foreach (var component in components)
849+
{
850+
await renderer.Dispatcher.InvokeAsync(() => renderer.AssignRootComponentId(component));
851+
component.TriggerRender();
852+
Assert.Equal(1, component.NumRenders);
853+
}
854+
855+
// Act/Assert: All components re-render when the cascading value changes
856+
paramValue.ChangeValue("Final value");
857+
await cascadingValueSource.NotifyChangedAsync();
858+
foreach (var component in components)
859+
{
860+
Assert.Equal(2, component.NumRenders);
861+
}
862+
}
863+
775864
private class SingleDeliveryValue(string text)
776865
{
777866
public string Text => text;
@@ -861,6 +950,43 @@ public void AttemptIllegalAccessToLastParameterView()
861950
}
862951
}
863952

953+
class ConditionallyRenderSubscriberComponent : AutoRenderComponent
954+
{
955+
public int NumRenders { get; private set; }
956+
957+
public SimpleSubscriberComponent NestedSubscriber { get; private set; }
958+
959+
[Parameter] public string RenderWhenEqualTo { get; set; }
960+
961+
[CascadingParameter] MyParamType CascadingParameter { get; set; }
962+
963+
protected override void BuildRenderTree(RenderTreeBuilder builder)
964+
{
965+
NumRenders++;
966+
builder.AddContent(0, $"CascadingParameter={CascadingParameter}");
967+
968+
if (string.Equals(RenderWhenEqualTo, CascadingParameter.ToString(), StringComparison.OrdinalIgnoreCase))
969+
{
970+
builder.OpenComponent<SimpleSubscriberComponent>(1);
971+
builder.AddComponentReferenceCapture(2, component => NestedSubscriber = component as SimpleSubscriberComponent);
972+
builder.CloseComponent();
973+
}
974+
}
975+
}
976+
977+
class SimpleSubscriberComponent : AutoRenderComponent
978+
{
979+
public int NumRenders { get; private set; }
980+
981+
[CascadingParameter] MyParamType CascadingParameter { get; set; }
982+
983+
protected override void BuildRenderTree(RenderTreeBuilder builder)
984+
{
985+
NumRenders++;
986+
builder.AddContent(0, $"CascadingParameter={CascadingParameter}");
987+
}
988+
}
989+
864990
class SingleDeliveryParameterConsumerComponent : AutoRenderComponent
865991
{
866992
public int NumSetParametersCalls { get; private set; }

src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,12 +98,12 @@ This package is an internal implementation of the .NET Core SDK and is not meant
9898
<RuntimePackageRootVariableName>PkgMicrosoft_NETCore_App_Runtime_$(RuntimeIdentifier.Replace('.', '_'))</RuntimePackageRootVariableName>
9999

100100
<!--
101-
Determine the crossgen2 package path property name. Special case linux-musl-arm and linux-musl-arm64 because they
102-
are built on an Ubuntu container with cross compilation tools. linux-musl-x64 is built in an alpine container.
101+
Determine the crossgen2 package path property name. Special case linux-musl because they are built on
102+
an Ubuntu container with cross compilation tools.
103103
Special case the crossgen2 package reference on Windows to avoid the x86 package when building in Visual Studio.
104104
-->
105105
<BuildOsName>$(TargetOsName)</BuildOsName>
106-
<BuildOsName Condition="'$(TargetOsName)' == 'linux-musl' and '$(TargetArchitecture)' != 'x64'">linux</BuildOsName>
106+
<BuildOsName Condition="'$(TargetOsName)' == 'linux-musl'">linux</BuildOsName>
107107
<BuildOsName Condition=" '$(PortableBuild)' == 'false' ">$(TargetRuntimeIdentifier.Substring(0,$(TargetRuntimeIdentifier.IndexOf('-'))))</BuildOsName>
108108
<Crossgen2BuildArchitecture Condition=" '$(BuildOsName)' == 'win' ">x64</Crossgen2BuildArchitecture>
109109
<Crossgen2BuildArchitecture Condition=" '$(Crossgen2BuildArchitecture)' == '' ">$(BuildArchitecture)</Crossgen2BuildArchitecture>

src/Servers/HttpSys/test/FunctionalTests/DelegateTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ public async Task UpdateDelegationRuleTest()
217217

218218
[ConditionalFact]
219219
[DelegateSupportedCondition(true)]
220+
[QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/60141")]
220221
public async Task DelegateAfterReceiverRestart()
221222
{
222223
var queueName = Guid.NewGuid().ToString();

0 commit comments

Comments
 (0)