Jad*_*ias 16 .net c# wcf persistence
我编写了一个WCF服务,但是存储在Service实现中的数据在调用之间不会持续存在,即使存储在静态变量中也是如此.我能做什么?
服务实现如下:
public class Storage : IStorage
{
protected static object[] _data;
#region IStorage Members
public void Insert(object[] data)
{
lock (_data)
{
_data = _data.Concat(data).ToArray();
}
}
public object[] SelectAll()
{
lock (_data)
{
return (object[])_data.Clone();
}
}
#endregion
}
Run Code Online (Sandbox Code Playgroud)
服务主机是一个控制台应用程序:
static void Main(string[] args)
{
ServiceHost serviceHost =
new ServiceHost(typeof(TimeSpanStorage));
serviceHost.Open();
Console.WriteLine("Service running. Please 'Enter' to exit...");
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
Mat*_*ttC 18
默认情况下,WCF instanceMode设置为Per call,这意味着服务中使用的数据特定于该方法调用的客户端.
在您的实现上尝试添加
[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single, ConcurrencyMode=ConcurrencyMode.Single)]
public class MyService: IService
Run Code Online (Sandbox Code Playgroud)
这使得服务基本上是单身.
| 归档时间: |
|
| 查看次数: |
14865 次 |
| 最近记录: |