SilverLight启用Wcf服务 - 无法跟踪会话

时间:2010-06-25 00:56:43

标签: wcf silverlight session service

我是Silverlight和WCF服务的新手。我正在尝试编写一个可以操作对象服务器端的客户端应用程序。

我的问题是每次我的Silverlight客户端调用该服务时,它都会系统地进入构造函数

public SilverLightEnabledWcfService()
        {
        }

在下面的示例中,我只想根据活动客户端增加或减少一个数字。

我该如何正确地做到这一点?

我还尝试创建一个常规的ASP.net客户端页面,我得到了相同的结果,即服务器不记得会话。所以我认为问题不在我的客户端,但如果有帮助我仍然很乐意发布代码。

谢谢!

using System;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Activation;
using Count.Library;

namespace Count.WebApp
{
    [ServiceContract(Namespace = "")]
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
    public class SilverLightEnabledWcfService
    {
        public SilverLightEnabledWcfService()
        {
        }

        private Class1 _class1;

        [OperationContract]
        public int Add1()
        {
            if (_class1 == null)
                _class1 = new Class1(0);
            _class1.Add1();
            return Value;
         }

        [OperationContract]
        public int Remove1()
        {
            if (_class1 == null)
                _class1 = new Class1(0);
            _class1.Remove1();
            return Value;
         }

        public int Value
        {
            get
            {
                return _class1.Count;
            }
        } 
    }
}

1 个答案:

答案 0 :(得分:1)

会话需要wsHttpBinding,但Silverlight不支持此功能。但是有一些解决方法:

http://web-snippets.blogspot.com/2008_08_01_archive.html

http://forums.silverlight.net/forums/t/14130.aspx