acercarse a ella como esto va a hacer lo que quiera, yo creo:
string relativeUriPart = GetUniquePartFromConfigOfThisApplicationInstance();
var host = new ServiceHost(typeof(MyClass1)); // No base addresses specified
host.AddServiceEndpoint(
typeof(ISomeInterface),
new NetNamedPipeBinding(),
"net.pipe://localhost/" + relativeUriPart); // Specify absolute URI for endpoint
host.Open();
Esto se debe a que, si se especifica una dirección de base que utiliza el esquema de net.pipe
, es esta dirección de base que se utiliza para derivar el nombre de la tubería utilizado por el oyente [consulte la edición a continuación], y esto es igual en cada instancia de la aplicación, de modo que solo el oyente de la primera aplicación puede crear la tubería; los demás fallan como ha notado.
Utilizando el URI absoluto en el nivel de punto final, sin dirección base, el detector se crea con un nombre de canal derivado [ver edición más abajo] del URI absoluto completo, que es diferente en cada instancia de aplicación, por lo que cada aplicación El oyente puede crear su propio conducto distintivo sin ningún problema.
EDIT: Para ser más precisos, el nombre propio tubo no se deriva de la dirección del servicio en absoluto - es un GUID que cambia cada vez que se abre el servicio. Lo que es derivado de la dirección del servicio es el nombre de un objeto de memoria compartida a través del cual se publica el nombre real de la tubería para clientes potenciales. See here for more details.
Quiero ejecutar múltiples aplicaciones, no múltiples servicios en una aplicación. – Jaster
¿Podría definir "aplicación"? Si su aplicación utiliza contratos de servicios múltiples (interfaces), se puede usar un único servicio WCF con un único host siempre que agregue un punto final para cada interfaz implementada. Si ha creado múltiples servicios WCF que implementan una interfaz diferente, debe usar un ServiceHost por separado para cada servicio. –
solicitud = proceso. En otras palabras: quiero un par de procesos para alojar el mismo servicio en diferentes "direcciones". – Jaster