posts - 4238, comments - 3946, trackbacks - 370

My Links

News



Subscribe Subscribe

image image image





This is my personal weblog. These postings are provided 'AS IS' with no warranties, and confer no rights. The views expressed on this weblog are mine alone and do not necessarily reflect the views of my employer.

Licenza Creative Commons

Tag Cloud

Archives

Post Categories

Bellissima sessione sullo sviluppo con Virtual Server...

Mi è piaciuta molto...

Speaker molto competente, si è parlato un'oretta di COM, threading model, security... quanti bei ricordi...

A parte gli scherzi, visto che le interfacce di Virtual Server 2005 sono oggetti COM, bisogna averci a che fare ancora un po'...

Questi oggetti richiedono di richiamara CoInitializeSecurity specificando "Impersonation" (Raf stai calmo mi raccomando!!!), e quindi ci sono un po' di cose da sapere:

  • CoInitializeSecurity in un'applicazione Windows Forms va chiamata prima di tutto, dentro nel Main
  • Non si può usare NGEN, perchè NGEN imposta un diverso livello. Il trucco è di fare un main di 2 righe che fa CoInitializeSecurity e poi richiama l'applicazione che sta in una DLL che è invece stata NGENnata...
  • Stesso discorso vale x ASP.NET, quindi le pagine dovranno richiamare o un Serviced Component hostato da DllHost impostato con "Impersonate", oppure tramite Remoting, Named Pipes, etc... richiamare un Windows Service che hosta il componente (ed è quello che fa il sito di amministrazione di VS2005)

Stesso discorso per i threading model: VS2005 preferisce MTA, ma Windows Forms richiede STA, ma nessuno vieta di incapsulare le chiamate a VS2005 in un thread impostato per girare come MTA.

Ok... chiudo il discorso tanto mi sa che l'ha capito solo Raf... neppure io so quello che ho scritto... il demone di COM si è impossessato di me e io scrivevo sotto dettatura!!!

Print | posted on giovedì 9 giugno 2005 22:27 | Filed Under [ TechEd ]

Feedback

Gravatar

# re: Bellissima sessione sullo sviluppo con Virtual Server...

ROTFL ...
Visto che mi hai tirato in ballo ...
CoInitializeSecurity è sempre stata 'delicata' anche senza dotnet di mezzo.
Il problema è che viene chiamata sempre dal com runtime la prima volta che viene fatto un marshaling di una interfaccia. Quindi se non lo fai prima ti vedi rispondere un errore che ho visto fin troppe volte, RPC_E_TOO_LATE che è autoesplicativo

Per quanto riguarda impersonation se la potevano proprio risparmiare, specie usando com, visto che se fai una chiamata tra due apartment, impersonation te la perdi perchè viene usato il token di processo e non quello di thread. E questo spiega tutto il rigiro che spiegavi sull'incapsulamento. Quando si dice che se le cercano ....
12/06/2005 02:40 | Raffaele Rialdi
Gravatar

# re: Bellissima sessione sullo sviluppo con Virtual Server...

13/06/2005 19:02 | Lorenzo Barbieri
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET