Hi, I have a GUI application that uses a remote serviced component in a server COM+ application. The serviced component must let know the GUI application instances when certain events happen. A transient subscription could be the solution, but making a transient subscription implies modification of the COM Admin Catalog with COMAdmin and the GUI application does not have administrative privileges on the remote machine (neither on the local machine). GUI.exe processes live on machines A1, A2, ..., An; the application server (and event class) lives on machine B. For developing purposes, B could be the same machine as one of A1, ..., An when testing the server and the GUI on the same machine. The GUI clients make changes to the database through the application server. When one of the clients makes such a change, the application server sends the appropriate SQL statements to the database, and also notifies the other GUI clients of the change. So the GUI clients can work on shared data at the same time.
I tried this, but it doesn't work: In the same COM+ server application as the event class I implemented a serviced component with 2 methods: Adivise and Unadvise. The Advise uses the COMAdmin to transiently subscribe the IMsgSink parameter to the event class on the same machine. This is possible because the COM+ server application has Admin rights on its machine. The GUI creates a library activated COM+ component implementing the IMsgSink interface, lets call it S. It also creates an instance of the intermediary serviced component in the event class server application, and calls its Advise method passing it S. But UnauthorizedAccessException gets thrown. I'm in a workgroup environment, but I don't think it matters. (I posted this question on other groups, and that helped me a lot, but I still can't solve it completely). TIA, Daniel Aioanei You can read messages from the DOTNET archive, unsubscribe from DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com.