WCF 服务 + ASP .NET MVC 应用程序。从服务回调后会话过期
WCF Service + ASP .NET MVC application. Session expires after callback from the service
关于从我的 ASP .NET mvc 应用程序使用 WCF 服务,我有以下问题。服务需要在客户端实现回调方法。为此,我正在使用 wsDualHttpBinding。正在调用回调并收到正确的信息(多次使用制动点检查)。
问题在于我无法保存从 WCF 服务调用回调 "SendComment" 时收到的数据。回调方法定义:
public void SendComment(ChatComment cc)
{
Session["Message"] = cc;
}
此方法应允许客户端(在 asp .net 中)接收从 WCF 服务广播到多个客户端的聊天消息。
当我尝试从控制器方法访问 Session["Message"] 时,在收到回调后它的值为空。这是主要问题。我必须找到一种方法来保存它在当前会话上下文中可用的值。
此外,我无法访问我在调用回调之前保存的任何其他会话变量。它们始终为空。
此外,我如何知道我何时收到回电?我是否必须使用事件处理程序或以某种方式从此方法调用 controller/view?
我已经尝试在谷歌上搜索答案,但 none 的解决方案明确说明了如何在回调发生后访问该值。
P.S。在 WCF 服务中将会话设置为必需。
这不会按照您设计的方式工作。不这样做的几个原因:
- 您无法通过回调访问会话。
- 您不能直接从 ASP.Net MVC 应用程序调用客户端。
您也在寻找其他解决方案。我建议您查看 SignalR,或者如果您需要更简单的东西,请使用 DB 来存储来自客户端的数据和池。
关于从我的 ASP .NET mvc 应用程序使用 WCF 服务,我有以下问题。服务需要在客户端实现回调方法。为此,我正在使用 wsDualHttpBinding。正在调用回调并收到正确的信息(多次使用制动点检查)。
问题在于我无法保存从 WCF 服务调用回调 "SendComment" 时收到的数据。回调方法定义:
public void SendComment(ChatComment cc)
{
Session["Message"] = cc;
}
此方法应允许客户端(在 asp .net 中)接收从 WCF 服务广播到多个客户端的聊天消息。
当我尝试从控制器方法访问 Session["Message"] 时,在收到回调后它的值为空。这是主要问题。我必须找到一种方法来保存它在当前会话上下文中可用的值。
此外,我无法访问我在调用回调之前保存的任何其他会话变量。它们始终为空。
此外,我如何知道我何时收到回电?我是否必须使用事件处理程序或以某种方式从此方法调用 controller/view?
我已经尝试在谷歌上搜索答案,但 none 的解决方案明确说明了如何在回调发生后访问该值。
P.S。在 WCF 服务中将会话设置为必需。
这不会按照您设计的方式工作。不这样做的几个原因:
- 您无法通过回调访问会话。
- 您不能直接从 ASP.Net MVC 应用程序调用客户端。
您也在寻找其他解决方案。我建议您查看 SignalR,或者如果您需要更简单的东西,请使用 DB 来存储来自客户端的数据和池。