7

我在 C# 中开发了一个继承 ServicedComponent 的 COM+ 组件。这是它的样子:

    [Transaction(TransactionOption.Required)]
    [ClassInterface(ClassInterfaceType.AutoDual)]
    [EventTrackingEnabledAttribute(true)]
    [JustInTimeActivation]
    [ObjectPooling(Enabled = true, MinPoolSize = 10, MaxPoolSize = 30, CreationTimeout = 15000)]
    [Synchronization]

    class MyComponent: System.EnterpriseServices.ServicedComponent
    {
        [AutoComplete(true)]
        public string getHello()
        {//2nd breakpoint
            ContextUtil.SetComplete();
            return "HelloWorld";
        }
    }

我有另一个测试项目,我称之为这个组件。

class Program
{
static void Main(string[] args)
{
MyComponent myComp = new MyComponent();
myComp.getHello();//1st Breakpoint
}
}

我无法到达第二个断点。这在我切换到 VS 2012 之前有效。奇怪的是切换到 2012 之后它也不再在 VS 2010 中工作。

我已经试过了,

  • 附加到进程
  • 在调试设置中未选中“仅启用我的代码”

有人可以从这里指导吗?

更新 1

从 Mike 提供的链接中,我在 DLL 和 PDB 文件所在的同一文件夹中为我的 DLL 尝试了 symchk。它失败并显示 PDB 不匹配或未找到错误。我不知道如何解决这个错误。

4

1 回答 1

5

您可能在项目中缺少 .pdb 文件。

检查此微软链接以获得解释:https ://msdn.microsoft.com/en-us/library/yd4f8bd1(vs.71).aspx

于 2015-07-10T17:47:08.717 回答