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..
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.
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?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With