KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I need to create a service which will maintain a WCF session. In the constructor I read in data from the DB and when the session ends I have to save it back. If I understand correctly the session ends when I call Close() on the Client (My client ServiceClient was created with SvcUtil.exe). When I test it I see that it is sometimes called after approx. 10 minutes, sometimes after 20 minutes and sometimes not at all. So when is the destructor called? Service [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)] public class Service:IService { private User m_User = null; public Service() { m_User = User.LoadFromDB(); } ~Service() { m_User.SaveToDB(); } public void SetName(string p_Name) { m_User.Name = p_Name; } } Web.config <?xml version="1.0"?> <configuration> <system.web> <sessionState timeout="2" /> </system.web> <system.serviceModel> <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> <services> <service name="Karatasi.Services.B2C" behaviorConfiguration="ServiceBehavior"> <host> <baseAddresses> <add baseAddress="http://localhost:19401/B2C.svc"/> </baseAddresses> </host> <endpoint address="" binding="wsHttpBinding" bindingConfiguration="test" contract="Karatasi.Services.IB2C" /> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> </service> </services> <bindings> <wsHttpBinding> <binding name="test" receiveTimeout="00:01:00" > <reliableSession enabled="true" ordered="false" ina
Tags (comma-separated)
Save Edits
Cancel