代码之家  ›  专栏  ›  技术社区  ›  Preet Sangha

有人体验过VS2008(inc SP1)随机忽略或丢失断点吗?

  •  1
  • Preet Sangha  · 技术社区  · 16 年前

    关于Robert的问题:我们在windows服务中托管WCF和远程处理服务。从本质上讲,来自客户端(通常是windows exe)的调用将在服务本身和代码中的线程中结束(与远程处理或WCF基础设施相反)。在我们的代码中,断点具有这种行为。

    我们在这里所做的大部分调试都是在服务代码中进行的,因此附加到进程是非常宝贵的,有时不可能达到所需的状态,除非在进程启动后附加到进程。这种情况发生在具有诸如resharper之类扩展的开发人员和运行vanilla VS的开发人员身上。

    看看谷歌也没什么帮助。

    当做 普里特


    Spudlo的答案对我们非常有用。非常感谢。请从下载修复程序 MSDN

    4 回复  |  直到 13 年前
        1
  •  2
  •   spudlo spudlo    16 年前
        2
  •  2
  •   Stefan    16 年前

    是的,当我忘记从发布切换到调试时。;)

        3
  •  2
  •   Robert Wagner    16 年前

    一些需要检查的事项:

    • 他们是调试版本吗?
    • 到源的路径也不同吗?
    • 在VS中,断点是否显示为空心(未填充)圆?如果是这样,将鼠标悬停在断点上,它会告诉您为什么不能设置断点。

    如果您将应用程序更改为控制台应用程序,并添加一个调用OnStart方法的主方法(就像windows服务一样),那么您可以从VS中启动服务。您仍然可以将应用程序作为Windows服务安装,也可以直接从VS运行:

    public static void Main(string[] args)
    {
        if (Environment.UserInteractive)
        {
            Console.WriteLine("Starting service...");
            Service1 svc = new Service1();
            svc.OnStart(args);
            Console.WriteLine("Started");
            Console.WriteLine("");
            Console.WriteLine("Press any key to stop");
            Console.Read();
            Console.WriteLine("Stopping...");
            svc.OnStop();
            Console.WriteLine("Stopped, Press any key to exit");
            Console.Read();
        }
        else
        {
            ServiceBase.Run(new Service1());
        }
    }
    
        4
  •  1
  •   GregUzelac    16 年前

    https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=363453 )而且微软已经给我们发送了一个DLL来修复它(似乎有效)。我预计微软很快就会发布补丁。

    由于您有不带SP1的问题,它可能有帮助,也可能没有帮助