Pracuję nad przeniesieniem aplikacji klient/serwer do .NET. Aktualna wersja serwera C ma jeden plik wykonywalny dla procesu (usługa systemu Windows), który nasłuchuje na połączenia z gniazdami. Kiedy słuchacz akceptuje połączenie przez gniazdo, uruchamia nowy proces obsługi tego połączenia. Aplikacja obsługi jest osobnym plikiem wykonywalnym.Przekazywanie gniazda do nowej AppDomain
W wersji .NET tej aplikacji chciałbym mieć jeden plik wykonywalny/proces. Słuchacz powinien utworzyć nową AppDomain dla każdego połączenia (aby odizolować "proces roboczy" przypisany do każdego klienta). Jak przekazać gniazdo z domeny aplikacji odbiornika do domeny aplikacji robotniczej?
Dzięki!
W zależności od izolacji możesz użyć funkcji GetData i SetData w odpowiednich domenach, ale konieczne może być przesłanie obiektów Marshal. Czy próbowałeś już czegoś? –
Myślę, że właśnie znalazłem odpowiedź na moje własne pytanie. Można użyć metody DuplicateAndClose, nawet jeśli nie przekazuję gniazda do oddzielnego procesu. Słuchacz może po prostu przekazać swój własny identyfikator procesu. [link] (http://blogs.msdn.com/b/malarch/archive/2005/12/14/503884.aspx) –
Fajnie, miej nadzieję, że działa poprawnie; jeśli tak, powinieneś odpowiedzieć na własne pytanie i zaakceptować je. –