【问题标题】:WCF Stream doesn't unlock file after download下载后 WCF Stream 未解锁文件
【发布时间】:2011-09-09 13:40:28
【问题描述】:

我为用户提供使用 WCF Streams 下载文件的功能。问题是,一旦下载了文件(创建了 FileStream 对象),我就无法使用 File.Delete() 删除该文件,它说它正在被其他人使用。下载后在客户端关闭流。如何解决这个问题?

【问题讨论】:

  • 您的服务和合同是如何定义的?
  • 在客户端,是否关闭/处置服务代理对象?
  • 解决方法是在创建FileStream时设置FileShare参数为“FileShare.Delete | FileShare.Read”

标签: wcf stream


【解决方案1】:

您使用“FileShare.Delete | FileShare.Read”的解决方案实际上是一种解决方法(文件句柄仍不会关闭)。我怀疑您使用包含 Stream 的 MessageContract。在这种情况下,您实际上必须做更多的工作才能正确处理流,请参阅此答案Stream as a return value in WCF - who disposes it?

【讨论】:

    猜你喜欢
    • 2010-10-15
    • 1970-01-01
    • 2019-03-10
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多