2016-04-15 47 views
1

我已经创建了一个在每个页面的页面加载事件中使用ajax调用的web服务(.asmx)。它基本上用来记录网站用户的行为。我将这个捕获的信息序列化成一个xml文件。这是我使用的方法。第三个函数用于通过调用正确的函数来序列化和反序列化。我已经对此函数进行了锁定。但是,即使在两个或多个用户同时浏览数据被覆盖的情况下,问题仍然存在。无法阻止使用锁定web服务中的并发文件访问

我打电话这样的功能:

List<UserPath> UPL = saveandfetch<List<UserPath>>("D",Server.MapPath("/UserPath.xml"));//deserialize 

    saveandfetch<List<UserPath>>("S",Server.MapPath("/UserPath.xml"),UPL); //serialize 

我到底做错了什么?

+0

锁柜是'对象'类型的静态对象吗? – Lesmian

+0

不是它的静态对象。 –

回答

2

为了正确地锁定您的更衣室对象应声明为:

static object locker = new object(); 

这种方式将创建它只有一次,在所有的函数调用中使用。

+0

嘿它工作的感谢 –