I need to understand how I get the HttpResponseMessageProperty from an async web service request.
I'm attempting to migrate a C# Console App into an Azure Function App and the only methods now available in the connected service are async.
The error I'm getting is:
System.Private.ServiceModel: This OperationContextScope is being disposed out of order.
From what I've read, the error is likely to be a result of the OperationContextScope running on a different thread and OperatonContextScope is thread specific.
There is advice on the MS docs site which states:
If you need to call "await" for an async call, use it outside of the OperationContextScope block.
Not sure how I achieve this though, hence my question here.
Here's my code:
BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport)
        {
            AllowCookies = true,
            SendTimeout = new TimeSpan(0, httpTimeout, 0),
            ReceiveTimeout = new TimeSpan(0, httpTimeout, 0),
            MaxBufferSize = int.MaxValue,
            MaxReceivedMessageSize = int.MaxValue
        };
        /* set the https endpoint and create the service client object */
        EndpointAddress serviceEndpoint = new EndpointAddress(serviceBaseUrl + serviceName);
        AuthenticationServicePortTypeClient service = new AuthenticationServicePortTypeClient(binding, serviceEndpoint);
        /* set the request attributes and login */
        Login loginRequest = new Login()
        {
            UserName = authUser,
            Password = authPass,
            DatabaseInstanceId = databaseInstance,
            DatabaseInstanceIdSpecified = true
        };
        using (new OperationContextScope(service.InnerChannel))
        {
            LoginResponse1 loginResponse = await service.LoginAsync(loginRequest);
            if (loginResponse.LoginResponse.Return)
            {
                HttpResponseMessageProperty response = (HttpResponseMessageProperty)OperationContext.Current.IncomingMessageProperties[HttpResponseMessageProperty.Name];
                sessionCookie = response.Headers["Set-Cookie"];
            }
        }
The exception is throw on the HttpResponseMessageProperty line.
I just need to be able to obtain the cookie from the header.
Any help would be extremely appreciated.