我最近将我的ASMX服务转换为WCF以利用Sessions。

我已经查看了MSDN上的一些Sessions教程,但仍不确定我的代码中是否设置了正确的设置。 到目前为止,它仍然有效,但是我不确定为什么。

我有

[ServiceContract
    (SessionMode = SessionMode.Required,
     Namespace = "http://smartshopservice.org")]

那我有

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
public class SmartShopService : SmartShopInterface
{
    private static Shopper sh = new Shopper();
    private List<aaa> data = new List<aaa>();

我的问题的第一部分是Shopper是否是我的“全局”变量。 我希望它始终存在,而每个会话都要实例化诸如“数据”之类的所有其他内容。 我还正确地设置了WebConfig。 我还有什么需要做的吗?

我的第二个问题是如何关闭会话,然后刷新所有这些变量? 我的客户现在是一个WebClient,它的通信方式如下:

static GarfieldService.SmartShopInterfaceClient service 
    = new GarfieldService.SmartShopInterfaceClient();

它似乎正常工作,并且我在ASP.NET页的onbody =“”调用了一个看起来像这样的函数:

[WebMethod]
public static bool Connect() {
    try {
        if (service.State 
            == System.ServiceModel.CommunicationState.Closed) {
            service.Open();
            return true;
        }
        else if (service.State 
            == System.ServiceModel.CommunicationState.Created) {
            service.Open();
            return true;
        }
    }
    catch {}
    return false;
}

这样我可以连接,但是如何断开或关闭会话?

#1楼 票数:0

回复:全局变量,是的,在服务上使用静态变量将充当全局变量,并且由于您使用的是PerSession,因此“ aaa”变量将成为永久变量。

关于:终止,请尝试创建“终止”操作并设置属性参数IsTerminate = true。

PS:我不认为WebGet属性与wsDualHttpBinding有关。

  ask by Overload119 translate from so

未解决问题?本站智能推荐:

3回复

将ASP.Net连接到Wcf/Tcp聊天服务

我有一个接受双工tcp连接的WCF聊天服务。 单个双工tcp连接可用于为多个用户发送和接收消息(因此,我可以有多个彼此连接的聊天服务器)。 现在,我想将Web用户添加到组合中,以使他们与桌面用户聊天。 这是用于实时支持类型的东西。 基本上,我试图找到从ASP.Net到此聊天服务的“带外
1回复

基本WCF-如何将WCF服务的消耗转换为“实际”部署?

我已经创建了一个WCF服务。 我现在正在学习如何使用这项服务的教程,我被指示这样做的方式是...... “..注意Visual Studio用来运行WCF webservice的http地址和端口。它可能看起来像这样([LOCAL HOST ADDRESS])。你需要在Windows窗体
1回复

扩展WCF声明以添加参数条目?

我想知道是否有一种简单的方法可以向服务连接中添加参数? 本质上,我想做一些简单的事情,例如通过服务连接传递一个整数,其中所有可用方法都可以访问此参数。 这是设计图: 本质上,出于多种原因,与WCF服务进行通信时,应用程序服务器将获得可以传递的ID。 有没有简单的方法可以将此功能集成到
2回复

WCF配置服务器以记住数据

我目前在WCF中有一个服务,它处理客户端发出的请求。 但是,它会缓存客户端发送的一些数据。 然后它对数据进行计算。 在任何时候,客户端都应该能够检索一些数据。 它由用户自行决定(当单击Button时,将发送AJAX查询以获取一些数据)。 我遇到的问题是,只要另一个客户端连接并开始发
1回复

WCF服务正在运行什么?

当我尝试在IIS而不是ASP.NET开发服务器上运行WCF服务时遇到错误。 澄清:使用Windows服务或ASP.NET开发服务器时,运行WCF服务时不会出现错误。 只有IIS是问题所在。 我正在使用控制台应用程序来测试服务。 在尝试使用IIS端口之前,我从未遇到过服务问题。 这
1回复

WCF:无法添加服务。服务元数据可能无法访问

我已经搜索了这个问题,并获得了太多的链接,并尝试了大多数链接,但是我的问题没有解决。 我在管理员模式下运行VS。 我创建了一个新项目,然后将WCF服务添加到我的项目中。我想通过ajax调用我的服务。 这是我在Sevice.cs和Iservice.cs中的代码 和 然后将我的web
2回复

将对象列表从WCF服务传递到ASP.NETWeb应用程序

我通过WCF服务在Windows服务和asp.net Web应用程序之间进行通信。 例如:我将数据从Windows服务传递到wcf服务,然后传递给Web应用程序。 适用于字符串,整数和long,但我无法传递对象列表。 有适当的方法吗? asp.net Web应用程序 行动 W
1回复

通过WCF服务从控制台应用程序更新ASP页面中的文本框值

我有一个计划在Win 2003服务器上运行的ac#控制台应用程序,它读取诸如磁盘空间,cpu使用率等值。 现在,我想在aspx页面上在线或实时显示这些值。 到目前为止,这是我的(无效的)尝试: WCF服务: 尝试从以下代码更新文本框: Default.aspx: 要写入文