我建立一個(瘦)客戶端 - 服務器應用程序與IIS的使用Spring.Net作爲主要技術和薄WPF演示客戶端通過WCF comunicating服務器服務器(我們計劃客戶在未來的Web版本) 當我登錄我創建一個HTTP會話cookie有一個像網頁瀏覽器有狀態會話,我從服務器獲取許可證。 當我註銷,或者如果IIS會話超時(因爲客戶端崩潰或用戶不能正確登出)我需要:IIS,Spring.Net WCF HTTP會話管理
- 發行許可證
- 釋放所有的會話從服務器RAM範圍內的對象。
所以我需要實現這兩點:
- 鉤到EndSession事件來處理超時和崩潰
- 其通信的會議結束時釋放的後IIS中的註銷過程執照。
我在網上看過,但沒有找到一個關於如何做這種雙向會話管理的明確例子。如果你能幫助我,併爲IIS的XML配置的例子,Spring.Net將不勝感激
FYI這是出現在我的web.config文件中的主要WCF和WEB配置:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<bindings>
<basicHttpBinding>
<binding name="basicHttpBinding1" maxReceivedMessageSize="31457280" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:30:00" sendTimeout="00:30:00">
<readerQuotas maxStringContentLength="31457280" maxArrayLength="31457280" />
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="wcfService" behaviorConfiguration="DefaultBehavior">
<endpoint address="" binding="basicHttpBinding" contract="Nemsys.SMF.Service.Tunnel.IWCFService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="DefaultBehavior">
<serviceMetadata httpGetEnabled="True" />
<serviceDebug includeExceptionDetailInFaults="True" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<sessionState timeout="60" />
<!-- needed by Spring.Net on IIS 7.0 -->
<httpHandlers>
<add verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web" />
</httpHandlers>
<httpModules>
<add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web" />
</httpModules>
</system.web>
<!-- needed by Spring.Net on IIS 7.0 -->
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules>
<add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web" />
</modules>
<handlers>
<add name="SpringPageHandler" verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web" />
<add name="SpringContextMonitor" verb="*" path="ContextMonitor.ashx" type="Spring.Web.Support.ContextMonitor, Spring.Web" />
</handlers>
</system.webServer>
其實我已經設法通過在管理用戶會話的BLL類中實現IDisposable來正確釋放Logout或Http Session過期的資源,並在處理對象之前調用它。 ,我不知道該怎麼做的唯一事情是: 當用戶釋放我需要摧毀HTTP會話讓IIS和Spring收集並釋放所有的會話資源分配到的許可證後,點擊退出按鈕。
恕我直言,這不是Spring.NET的關係。如果你在IIS上並使用一個asp.net Session,你可以創建一個global.asax並使用'protected void Session_End(Object sender,EventArgs e)'來清除。 – Andreas 2012-03-30 09:13:33
根據你的更新'SessionState.Abandon();'是你的朋友。 http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.abandon.aspx – Andreas 2012-03-30 15:26:21