当前位置:  开发笔记 > 编程语言 > 正文

在.NET中使用Web服务写入单个文件

如何解决《在.NET中使用Web服务写入单个文件》经验,为你挑选了1个好方法。

我在.net 2.0,C#中创建了一个web服务.每当Web服务客户端调用不同的方法时,我都需要将一些信息记录到文件中.

当一个用户进程正在写入文件而另一个进程尝试写入该文件时,就会出现问题.我收到以下错误:

该进程无法访问该文件,因为该文件正由另一个进程使用.

我试图在C#中实现并且失败的解决方案如下.

    实现包含写入文件的代码的单例类.

    使用lock语句来包装写入文件的代码.

    我也尝试使用开源记录器log4net,但它也不是一个完美的解决方案.

    我知道记录到系统事件记录器,但我没有这个选择.

我想知道这个问题是否存在完美而完整的解决方案?



1> Khoth..:

锁定可能会失败,因为您的Web服务由多个工作进程运行.您可以使用命名的互斥锁来保护访问权限,该互斥锁在进程间共享,与您使用的锁不同lock(someobject) {...}:

Mutex lock = new Mutex("mymutex", false);

lock.WaitOne();

// access file

lock.ReleaseMutex();

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有