Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 停止VS调试器时会发生什么?_Asp.net_Debugging - Fatal编程技术网

Asp.net 停止VS调试器时会发生什么?

Asp.net 停止VS调试器时会发生什么?,asp.net,debugging,Asp.net,Debugging,如果我有这样一句台词 ContentRepository.Update(existing); 它进入数据存储库来更新某些对象,我在这个更新函数中有一个try..catch块,如下所示: string file = XmlProvider.DataStorePhysicalPath + o.GetType().Name + Path.DirectorySeparatorChar + o.Slug + ".xml"; DataContractSerializer d

如果我有这样一句台词

ContentRepository.Update(existing);
它进入数据存储库来更新某些对象,我在这个更新函数中有一个try..catch块,如下所示:

        string file = XmlProvider.DataStorePhysicalPath + o.GetType().Name + Path.DirectorySeparatorChar + o.Slug + ".xml";
        DataContractSerializer dcs = new DataContractSerializer(typeof (BaseContentObject));
        using (
            XmlDictionaryWriter myWriter =
                XmlDictionaryWriter.CreateTextWriter(new FileStream(file, FileMode.Truncate, FileAccess.Write),
                                                     Encoding.UTF8))
        {
            try
            {
                dcs.WriteObject(myWriter, o);
                myWriter.Close();
            }
            catch (Exception)
            {
                // if anything goes wrong, delete the created file
                if (File.Exists(file))
                    File.Delete(file);
                if(myWriter.WriteState!=WriteState.Closed)
                    myWriter.Close();
            }
        }
那么,如果我在上面一行的调试会话中单击“停止”,为什么VisualStudio会继续调用Update

例如,我通过一行一行地按F10到达那一行,现在我在那一行上,那一行是黄色的,我按下停止键


显然,VS会执行更新方法,并以某种方式找出出错的地方,然后进入catch并删除文件,这是错误的,因为我希望catch在出现真正异常时工作,而不是在调试程序并强制停止它时工作。

这取决于调试器分离是否结束进程。如果没有,那么程序将继续运行。如果是,那么就不会了。

这是ASP.NET MVC应用程序提供的,是否应该结束该过程?目前,我的浏览器窗口保持打开状态。我没有这样配置它,默认情况下是这样的。@mare:在这里,当我使用Firefox作为默认浏览器时,它不会结束这个过程。我想可能在某个地方有一个背景;但我通常更希望它不会结束这个过程,所以我还没有研究它。我可以确认,这也依赖于浏览器。