【问题标题】:VS2010 Keeps Running After "Stop Debugging" (Web API)VS2010“停止调试”后继续运行(Web API)
【发布时间】:2014-02-27 16:48:52
【问题描述】:

我有一个 ASP.NET 4.0 WEB API 应用程序正在运行,它会修改一些数据库记录。

我的代码遍历订单和更新:

<[PUT]("ProcessOrders")>
Public Sub PutValue()

   Dim Orders as List(of OrderInfo) = DAL.GetOrders()

   For Each Order As OrderRequest In Orders

       Dim Status As OrderProcessingStatus = Order.Process()

       If (Status.isSuccessfullyProcessed) Then
            DAL.UpdateOrderStatus(Order.OrderNumber, "SUCCESS")
       Else
            DAL.UpdateOrderStatus(Order.OrderNumber, "FAIL", Status.ErrorMessage)
       End If
   Next

End Sub

在 VS2010 中调试时,我在获取命令的第一行有一个断点。 在 VS2010 中,我点击“停止调试” - 期望我的代码会立即停止而不执行。

令我惊讶的是,即使在我点击停止调试后,代码仍会继续运行并更新我的数据库。

请帮忙。

注意:我开始调试,然后我用Fiddler调用这个方法

谢谢,

辛查

【问题讨论】:

    标签: visual-studio-2010 visual-studio debugging asp.net-web-api


    【解决方案1】:

    想通了。正如阿德里安·麦卡锡所说:

    如果进程在调试器之外启动,然后附加调试器,“停止调试”命令只是将调试器从进程中分离出来,进程继续运行。

    最后,我使用了 Debug 菜单下的“Terminate All”。这实际上会停止所有请求/进程。

    【讨论】:

    • Visual Studio 的这种行为让我抓狂。在事务中,我暂停了调试器,在检查了代码后,我点击了“停止调试”按钮,以为代码已经停止了。我最终完成了一些不应该存在的交易。在意识到 Visual Studio 调试器的这种行为之前,花了一整天的时间分析导致事务完成的原因。
    【解决方案2】:

    如果进程在调试器之外启动,然后附加调试器,“停止调试”命令只会将调试器从进程中分离出来,然后进程继续运行。

    如果要停止进程,请从调试器启动它。如果这样做不方便(例如,如果进程由另一个进程在某个事件上启动),那么您必须在任务管理器中终止该进程,然后停止调试器。

    【讨论】:

    • 我正在调试器中启动进程,但我的 PUT 请求来自 Fiddler。
    猜你喜欢
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    • 2017-10-11
    • 2022-08-11
    • 2021-06-04
    相关资源
    最近更新 更多