我是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;
}
}
}
}
答案 0 :(得分:1)
会话需要wsHttpBinding,但Silverlight不支持此功能。但是有一些解决方法: