Session variable in WCF application

14,176

Solution 1

What you're describing (custom context that is retained for the life of a single request) is more like HttpContext.Items than an ASP.NET Session.

WCF does have a class called OperationContext that is similar to HttpContext. It doesn't have an Items property for custom context, but this blog post describes a technique you can use to achieve what you want.

Solution 2

You have to do a couple of things.

Set aspNetCompatibilityEnabled = true on your host (inside system.ServiceModel | serviceHostingEnvironment)

The service (not the contract) - should be attributed with:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]

Finally you have you have to set allowCookies on your binding to true.

<basicHttpBinding>
 <binding name="SessionBinding" allowCookies="true">
</basicHttpBinding>

Just curious, are you certain you need session?

Share:
14,176
kaivalya
Author by

kaivalya

Updated on June 09, 2022

Comments

  • kaivalya
    kaivalya almost 2 years

    I need to use or stimulate a very simple session object inside my WCF app.

    I simply need to store some values at the beginning of a call and I need access to these values while I go through some different methods of my service.

    Asp.NET session would be very ideal to use for this so I need to find out what is available on a WCF app for storing such values.

    Note: this is just a per call session, I don't need to retain this session between different calls from the client to service and such..