Rozšírené hľadanie
Piatok 19. Apríl 2024 |
meniny má Jela

Michalův zápisníček 25.01.2017 18:05 Včera jsem programoval takovou obskurní aplikaci, jejíž jedna část měla za úkol updatnout zdrojáky ze SVN a za později je upravené commitnout zpět. Vše jako ASP.NET aplikace. Problém jsem se snažil řešit přes volání SVN clienta svn.exe. Problém u svn.exe je ten, že si po spuštění načítá z registry uživatele zálohované credential proti SVN a akceptace SSL certifikátů. Pokud tyto záznamy v registry nemá, pak se na ně ptá a specialně u SSL certifikátů se tato interakce nedá vypnout :-(. Problém s voláním z ASP.NET je, že bez ohledu na účet, pod kterým ASP.NET běží, bez ohledu na impersonalizaci a bez ohledu na povolené načítání uživatelského profilu u objektu ProcessStartInfo si svn.exe nenačte informace o tom, že má permanentně akceptovat SSL certifikát u SVN repository. Tudy cesta nevedla. Další možnost byla intergrovat .NET Subversion Library jako nebo či , či COM jako . Bohužel tyto knihovny nejsou zrovna nejčerstvější a já se chtěl vyhnout hledání problémů v cizím kódu. Takže jsem hledal další řešení. Mám ověřeno, že spouštění svn.exe bez problémů funguje v tasku v Task Manageru. Ok, to je cesta, ale jak z ASP.NET spustit task Task Manageru. Kupodivu snadno. Stačí vytvořit task v Task Manageru, běžící pod požadovaným účtem s jednorázovým spuštěním v minulosti. Spuštění tohoto tasku jde snadno pomocí c:\WINDOWS\system32\Schtasks.exe /run /TN . Příznávám, je to trochu kostrbatá cesta, ale většina cestiček je dlouhodobě ověřena a spolehlivá. Ale rád si nechám prozradit i jiný způsob, jestli nějaký znáte. Přidej do | | | | | | |