From 58afbb9b5d7582da6e4c189859c77f7822a5d23e Mon Sep 17 00:00:00 2001 From: ankitkmrpatel Date: Wed, 13 Dec 2023 16:49:20 +0530 Subject: [PATCH] fix: Resolve IMessageInspector2 Using Scope Resolver ----IMessageInsector2 is being Added as Scope Service, However, it is being resolve as Sington Service --- src/SoapCore/SoapEndpointMiddleware.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/SoapCore/SoapEndpointMiddleware.cs b/src/SoapCore/SoapEndpointMiddleware.cs index 510eb9b0..961ee6f7 100644 --- a/src/SoapCore/SoapEndpointMiddleware.cs +++ b/src/SoapCore/SoapEndpointMiddleware.cs @@ -460,10 +460,15 @@ private async Task ProcessMessage(Message requestMessage, SoapMessageEn throw new ArgumentException($"Unable to handle request without a valid action parameter. Please supply a valid soap action."); } - var messageInspector2s = serviceProvider.GetServices(); var correlationObjects2 = default(List<(IMessageInspector2 inspector, object correlationObject)>); - correlationObjects2 = messageInspector2s.Select(mi => (inspector: mi, correlationObject: mi.AfterReceiveRequest(ref requestMessage, _service))).ToList(); + using (IServiceScope scope = serviceProvider.CreateScope()) + { + var messageInspector2s = scope.ServiceProvider.GetServices(); + correlationObjects2 = messageInspector2s.Select(mi => + (inspector: mi, correlationObject: mi.AfterReceiveRequest(ref requestMessage, _service))) + .ToList(); + } // for getting soapaction and parameters in (optional) body // GetReaderAtBodyContents must not be called twice in one request