加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在.NET中的Web服务中写入单个文件

发布时间:2020-12-15 04:13:46 所属栏目:百科 来源:网络整理
导读:我在.net 2.0,C#中创建了一个web服务.每当Web服务客户端调用不同的方法时,我都需要将一些信息记录到文件中. 当一个用户进程正在写入文件而另一个进程尝试写入该文件时,就会出现问题.我收到以下错误: The process cannot access the file because it is bein
我在.net 2.0,C#中创建了一个web服务.每当Web服务客户端调用不同的方法时,我都需要将一些信息记录到文件中.

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

The process cannot access the file because it is being used by another process.

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

>实现包含写入文件的代码的单例类.
>使用lock语句来包装写入文件的代码.
>我也尝试使用开源记录器log4net,但它也不是一个完美的解决方案.
>我知道记录到系统事件记录器,但我没有这个选择.

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

解决方法

锁定可能会失败,因为您的Web服务由多个工作进程运行.
您可以使用命名的互斥锁保护访问,该互斥锁在进程间共享,与使用lock(someobject){…}获得的锁不同:
Mutex lock = new Mutex("mymutex",false);

lock.WaitOne();

// access file

lock.ReleaseMutex();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读