该进程无法访问Web服务中的文件

时间:2013-03-22 11:37:03

标签: c#-4.0 iis-7.5 fileinfo directoryinfo

以下是我在删除目录时从我的网络服务获取的例外

The process cannot access the file 'button.js' because it is being used by another process. 
3/22/2013 11:16:51 AM : Exception :The process cannot access the file 'button.js'   because it is being used by another process.

内部例外:

堆栈跟踪:

at System.IO.Directory.DeleteHelper(String fullPath,String userPath,Boolean recursive) 在System.IO.Directory.Delete(String fullPath,String userPath,Boolean recursive) 在System.IO.Directory.Delete(String path,Boolean recursive) at CRMobileAPI.v5_2.apibridge.downloadcompleted(String userid,String deviceid,String filepathurl)位于E:\ websites \ test.cont.com \ CRMobileAPI \ v5_2 \ apibridge.asmx.cs:第1213行

来源:

mscorlib程序

这是我的代码,

               if (Directory.Exists(_DirPath))
                {
                    try
                    {                            
                        DirectoryInfo _DirTemp = new DirectoryInfo(_DirPath);
                        _DirTemp.Delete(true);
                    }
                    catch (Exception Ex)
                    {
                        clsExHandler.Instance.Write(Ex);
                    }
                }

注意:这个例外不仅对'button.js'而且在时间上有所不同。

我如何摆脱这个问题;我的记录器文件遇到了这个异常。

1 个答案:

答案 0 :(得分:0)

很可能的原因是,该文件正在使用中。您必须确保Web服务器不访问该文件。但是,没有标准的方法可以做到这一点。

我建议您应该处理此异常,并在稍微延迟后重试删除该文件。 Web服务器通常会在非常短的时间内访问该文件,并且它应该非常快速地释放它,因此如果您使用相同的文件重试,则可能会成功删除它。