Opracowałem składnik COM + w języku C# dziedziczący składnik ServicedComponent. Oto jak to wygląda:Nie można wstawić i debugować kodu źródłowego obsługiwanego komponentu
[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";
}
}
mam inny projekt testowy, z którego nazywają ten składnik.
class Program
{
static void Main(string[] args)
{
MyComponent myComp = new MyComponent();
myComp.getHello();//1st Breakpoint
}
}
Nie jestem w stanie osiągnąć 2. punktu przerwania. To działało, zanim przerzuciłem się na VS 2012. Dziwne jest to, że po zmianie na 2012 rok nie działa już w VS 2010.
Ja już próbował,
- Dołączanie do przetwarzania
- nierejestrowany "Włącz Just My Code" w ustawieniach debugowania
Może ktoś proszę podać kierunek stąd?
UPDATE 1
Od linków podanych przez Mike, próbowałem symchk dla mojego DLL w tym samym folderze, w którym DLL i pliki PDB tam. Nie powiedzie się z błędem mówiąc, że PDB jest niedopasowane lub nie znaleziono. Nie wiem, jak rozwiązać ten błąd.
Kiedy zbudować projekt, widzę plik .pdb w moim folderze debugowania. Czy istnieje sposób, aby sprawdzić, czy jest on poprawnie połączony podczas debugowania? –
Jest to prawdopodobnie mało prawdopodobne, ale inną przyczyną może być przestarzałe .dll w GAC. Nie jestem pewien, czy możesz sprawdzić, do czego służy linker. Moje doświadczenie nie było dostępne w pdb. Oto bardziej rozbudowany artykuł na ten temat: https://msdn.microsoft.com/en-us/library/windows/desktop/ee416588(v=vs.85).aspx - Przepraszam, chciałbym być bardziej pomocny –
Dzięki za linki, przejrzę je i zobaczę, czy to pomoże! –