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作为默认浏览器时,它不会结束这个过程。我想可能在某个地方有一个背景;但我通常更希望它不会结束这个过程,所以我还没有研究它。我可以确认,这也依赖于浏览器。