在VS 2015中,仅在调试

时间:2016-06-08 16:25:32

标签: c# .net debugging visual-studio-2015

我在调试过程中遇到错误,但在没有调试的情况下运行时却没有。

IOException: The process cannot access the file 'C:\myproj\wwwroot\states.xml' because it is being used by another process.

Error Line: File.Create(filePath)

这是它出现的代码(注意:这是从我的MVC核心控制器的异步方法调用的):

public void SaveListAsXml(IList<T> list, string filePath)
        {
            var xmlString = ListToXML(list);
            var doc = XDocument.Parse(xmlString);

            using (var stream = File.Create(filePath))
            {
                using (var writer = XmlWriter.Create(stream))
                {
                    doc.Save(writer);
                }
            }
        }

当您尝试访问已经打开句柄的某些内容时,通常会抛出这些错误,但在这种情况下,我可以重启PC并在第一次运行调试时出现此错误。一个线索是,我注意到我有时必须逐步完成。在调试器中每行两次(由于异步父方法?)。这感觉就像一个VS bug,但这是我第一次使用MVC Core,所以可能是我的误解。

这两件事是否相关? (即重复的步骤和锁定的文件?)

要确认,当我使用CTRL + F5(没有调试运行)时,这运行正常。创建该文件,然后回读没有问题。

当我运行调试时,它总是抛出此错误,即使我在运行它之前删除了该文件。我是否需要显式关闭文件句柄?

0 个答案:

没有答案