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 v
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?