文件删除修改问题,在本地可以,发布到IIS上就不可以了。

xuf741477340 2014-10-08 03:06:40
项目中使用的了控件的接口,所以打开文件的操作无法了解,
然后在修改文件后保存到原文件进行覆盖的时候采用的也是控件的接口,会出现保存失败的现象(接口返回false)。
我就想在保存文件之前,删除原文件,问题就来了,在本地运行的时候是没有问题的,
到了IIS上,就会出现文件正由另一进程使用,因此该进程无法访问。


PS,使用接口的保存失败后连续多次保存就可以成功,所以目前是使用的递归循环保存,但效率较差,想找到比较好的解决方法。
...全文
168 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2014-10-08
  • 打赏
  • 举报
回复
引用 13 楼 yenange 的回复:
创建文件夹, 会导致Session失效
有这个BUG?没遇到过. 就算有BUG,反正用户创建文件夹也是在登陆的时候创建,而且只创建一次,不行第一次登陆的时候,就登陆2遍呗...
吉普赛的歌 2014-10-08
  • 打赏
  • 举报
回复
引用 8 楼 Z65443344 的回复:
创建文件夹的语句很简单的 Directory.Create(路径) 路径用用户名来拼接,保证自己玩自己的,不要重复 Create之前判断一下是否已经存在,就好了.
创建文件夹, 会导致Session失效
xuf741477340 2014-10-08
  • 打赏
  • 举报
回复
引用 10 楼 Z65443344 的回复:
你怎么知道是被自己占用,而不是被其他用户占用? IIS是发布在本地的,没有其他用户登陆?
是的,发布在本地的
於黾 2014-10-08
  • 打赏
  • 举报
回复
还有,VS调试的时候,功能测试,要一次性测试完,不要打开完,就退出调试,然后再重新测试删除 你退出调试,相当于关闭了IIS,当然就释放掉,不再占用了
於黾 2014-10-08
  • 打赏
  • 举报
回复
你怎么知道是被自己占用,而不是被其他用户占用? IIS是发布在本地的,没有其他用户登陆?
xuf741477340 2014-10-08
  • 打赏
  • 举报
回复
引用 8 楼 Z65443344 的回复:
创建文件夹的语句很简单的 Directory.Create(路径) 路径用用户名来拼接,保证自己玩自己的,不要重复 Create之前判断一下是否已经存在,就好了.
现在不是被其他用户占用,是被自己占用,但在本地运行就不会出现,只出现在IIS上
於黾 2014-10-08
  • 打赏
  • 举报
回复
创建文件夹的语句很简单的 Directory.Create(路径) 路径用用户名来拼接,保证自己玩自己的,不要重复 Create之前判断一下是否已经存在,就好了.
xuf741477340 2014-10-08
  • 打赏
  • 举报
回复
引用 4 楼 Z65443344 的回复:
还有,BS模式下,就不应该谁都可以随便修改文件的 如果你的只是临时文件,还是给每个用户分配一个文件夹,自己操作自己的,不要互相玩对方的文件
嗯嗯,现在是用户自己上传的文件,可能会在自己打开的情况下进行修改,然后保存,覆盖原文件。
  • 打赏
  • 举报
回复
对于有问题的“控件”,还是自己拥有源代码比较好。此时“人”已经是次要的了,因为这个人很懒,没能力写一个控件。
xuf741477340 2014-10-08
  • 打赏
  • 举报
回复
引用 2 楼 bdmh 的回复:
如果多人访问站点文件,再加上不及时释放,那肯定被占用了
现在还是发布在本地的IIS上,不会有多用户访问的情况,释放的话现在看不到源代码,还不清楚。
於黾 2014-10-08
  • 打赏
  • 举报
回复
还有,BS模式下,就不应该谁都可以随便修改文件的 如果你的只是临时文件,还是给每个用户分配一个文件夹,自己操作自己的,不要互相玩对方的文件
xuf741477340 2014-10-08
  • 打赏
  • 举报
回复
引用 1 楼 Z65443344 的回复:
你使用了什么控件的接口?? 你应该在根源上想办法,而不是规避了这个问题,拍脑袋想其他办法 好比地上有个洞,每次都要绕着走,否则就掉进去 你想的办法就是来回绕,这样很慢,然后问:有没有更快速的绕道方法? 我告诉你,还是赶紧把洞堵上的好
现在是本地是没有问题的,到了IIS上就会出现。对IIS学习还不是很多,所以来请教下的
bdmh 2014-10-08
  • 打赏
  • 举报
回复
如果多人访问站点文件,再加上不及时释放,那肯定被占用了
於黾 2014-10-08
  • 打赏
  • 举报
回复
你使用了什么控件的接口?? 你应该在根源上想办法,而不是规避了这个问题,拍脑袋想其他办法 好比地上有个洞,每次都要绕着走,否则就掉进去 你想的办法就是来回绕,这样很慢,然后问:有没有更快速的绕道方法? 我告诉你,还是赶紧把洞堵上的好

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧