Sdílet prostřednictvím


Výběr nejlepší metody pro ladění aplikace služby

Existuje několik různých způsobů ladění aplikace služby. Chcete-li zvolit správnou metodu, musíte nejprve provést dvě volby: čas, kdy je ladicí program připojen k aplikaci služby a jaká konfigurace ladění se má použít.

Ladicí program lze připojit k aplikaci služby ve třech fázích:

  • Začátek spuštění služby. Ladicí program se automaticky spustí při zahájení služby. Tuto možnost zvolte, pokud chcete ladit inicializační kód služby.

  • Při prvním výskytu výjimky, kdy se s ní služba setká. Ladicí program se automaticky spustí, když dojde k výjimce nebo chybovému ukončení, nebo pokud aplikace služby volá funkci DebugBreak. Tuto možnost zvolte, pokud chcete, aby se ladicí program zobrazil, když dojde k problému, ale ne dříve.

  • Po normálním spuštění služby. Ladicí program můžete kdykoli ručně připojit ke službě, která už je spuštěná. Tuto možnost zvolte, pokud nechcete provádět předběžné přípravy na ladění.

Existují tři možnosti konfigurace ladění, které si můžete vybrat:

  • Místní ladění/debuggování. Jeden ladicí program, spuštěný na stejném počítači jako služba.

  • Vzdálené ladění. Ladicí server spuštěný na stejném počítači jako služba, řízen prostřednictvím klienta ladění spuštěného na druhém počítači.

  • Ladění v uživatelském režimu řízené jádrem Ladicí program v uživatelském režimu, který běží na stejném počítači jako služba, je ovládán ladicím programem jádra na druhém počítači.

Pokud vaše služba běží ve Windows Vista nebo novější verzi Windows, existuje jedno omezení, jak lze tyto volby kombinovat. Pokud chcete ladit od začátku spuštění služby nebo od okamžiku, kdy dojde k výjimce, musíte použít vzdálené ladění nebo ladění v uživatelském režimu řízeném jádrem.

Jinými slovy, nemůžete použít místní ladění, pokud neplánujete ručně připojit ladicí program poté, co se služba již spustila. Toto omezení vyplývá ze skutečnosti, že v těchto verzích windows, službách běží v relaci 0 a veškerý ladicí program, který se automaticky spustí a připojí ke službě, je také v relaci 0 a nemá uživatelské rozhraní v počítači, na kterém je služba spuštěná.