2012-03-29 65 views
3

我想爲WCF服務禁用會話,通過改變服務合同禁用會話

[ServiceContract(Namespace = "http://company.com/Services/", SessionMode = SessionMode.NotAllowed)] 
public interface IService 
{ } 

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
public class Service: IService 
{ } 

但後來我踏入操作與調試器,我可以看到HttpContext.Current.Session是有效的對象。

我錯過了WCF操作的不可用會話狀態?

回答

0

您可以使用實例上下文模式。見:http://msdn.microsoft.com/en-us/magazine/cc163590.aspx

你有3種選擇:

  • 的獨生子,一個由所有共享服務的實例調用
  • 每學期,同一個會話直到客戶端代理關閉
  • 每個電話,在電話回覆後立即處理

這聽起來就是您每次撥打電話後的內容。您可能能夠在調試器中看到會話對象,但會在調用返回時立即處理它。

2

這是一個老問題,但要禁用ASP.Net會話RequirementsMode應該是AspNetCompatibilityRequirementsMode.NotAllowed