7

ServicedComponent を継承する C# で 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
}
}

2 番目のブレークポイントに到達できません。これは、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 に答える