Ho sviluppato un componente COM + in C# che sta ereditando ServicedComponent. Ecco come sembra:Impossibile eseguire il debug del codice sorgente del componente servito
[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";
}
}
ho un altro progetto di prova da cui io chiamo questo componente.
class Program
{
static void Main(string[] args)
{
MyComponent myComp = new MyComponent();
myComp.getHello();//1st Breakpoint
}
}
Non riesco a raggiungere il 2 ° punto di interruzione. Funzionava prima che passassi a VS 2012. Stranamente, dopo il passaggio al 2012, non funziona più anche in VS 2010.
Ho già provato,
- Attach to Process
- incontrollato "Attiva Just My Code" nelle impostazioni di debug
Qualcuno può dare una direzione da qui?
UPDATE 1
dai link forniti da Mike, ho provato Symchk per il mio DLL nella stessa cartella in cui i file PDB DLL ed erano lì. Fallisce con errore dicendo che il PDB non corrisponde o non viene trovato. Non so come risolvere questo errore.
Quando costruisco il progetto, vedo il file PDB nella mia cartella di debug. C'è un modo per verificare se questo è collegato correttamente durante il debug? –
Probabilmente questo è improbabile, ma un'altra cosa che può causare questo è avere un .dll obsoleto nel tuo GAC. Non sono sicuro che tu possa controllare per vedere cosa sta usando il linker. La mia esperienza è stata manca pdb. Ecco un articolo più robusto sull'argomento: https://msdn.microsoft.com/en-us/library/windows/desktop/ee416588(v=vs.85).aspx - Scusa, vorrei poter essere di più aiuto –
Grazie per i link, li esaminerò e vedrò se questo aiuta! –