【问题标题】:Using the Session in WCF在 WCF 中使用会话
【发布时间】:2014-11-19 22:10:22
【问题描述】:

这是我尝试在 WCF 应用程序中使用 Session 的方法:

 System.Guid guid = System.Guid.NewGuid();
 string id = guid.ToString();
 HttpContext.Current.Session[id] = "AnyThing";

但我收到此错误消息:

对象引用未设置为对象的实例。

这是在 WCF 应用程序中使用 Session 的正确方法吗?还是有其他方法可以在 WCF 中存储数据?

【问题讨论】:

  • WCF 中的会话与 ASP.NET 会话非常不同。 WCF 会话 NOT 旨在存储数据或类似的东西 - 它的唯一目的是在服务器上为特定客户端保持服务类“活动”,以便一系列调用(部分该会话)始终发送到服务器上的同一服务类实例并由其处理
  • 来自MSDN:“ASP.NET 会话状态和 WCF 会话非常不同。有关 WCF 会话的详细信息,请参阅Session。”

标签: c# wcf session


【解决方案1】:

您需要启用ASP.NET Compatibility Mode

web.config

<system.serviceModel>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>

您的 WCF 服务需要将 AspNetCompatibilityRequirementsAttribute 设置为必需或允许。

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class CalculatorService : ICalculatorSession

【讨论】:

  • 当我使用上述代码时,客户端通过错误是:用户代码未处理协议异常。请给我这个错误的解决方案
  • 错误信息:远程服务器返回错误:(500)内部服务器错误。
  • 看看这个answer
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-22
相关资源
最近更新 更多