Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Session variable in WCF application

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..

like image 507
kaivalya Avatar asked Mar 15 '10 17:03

kaivalya


2 Answers

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.

like image 154
Joe Avatar answered Sep 21 '22 17:09

Joe


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?

like image 35
Ta01 Avatar answered Sep 21 '22 17:09

Ta01