Utilizar dos endpoints con distintas credenciales
Las condiciones para poder hacerlo son las siguientes:
- Los “contract” de los endpoints deben ser distintos. Para diferenciar los contracts, se deben crear dos clases proxy con namespaces distintos, y luego, en las transacciones, hay que usar el namespace como prefijo del nombre de la clase en el parámetro del mensaje a EIS. Con el nuevo Proxy Manager, esto es relativamente fácil de hacer, no solo para generar la clase proxy asignando un namespace sino también para obtener un mensaje de ejemplo.
- El “name” de cada endpoint debe ser distinto.
- Se deben crear dos behaviors con “name” distinto, uno por cada credencial, y en cada endpoint apuntar al behavior que corresponda.
- La password se puede encriptar con EnageEncrypt, de la misma manera que se encripta la clave de la base de datos o cualquier otra clave en Engage.
Nota: Para el punto 1 van a necesitar el WSDL de cada servicio, para poder generar la clase proxy.
Ejemplos:
-Definición de endpoints:
<endpoint address=”http://localhost/SvcEngage5905/SvcEngage.svc”
binding=”wsHttpBinding” bindingConfiguration=”SvcEngage” contract=”ws1.intSvcEngage”
name=”SvcEngageTestNs1″ />
<endpoint address=”http://sti-nb-022/SvcEngage5905/SvcEngage.svc”
binding=”wsHttpBinding” bindingConfiguration=”SvcEngage” contract=”ws2.intSvcEngage”
name=”SvcEngageTestNs2″ />
Cambian la URL, el name y el contract, este último diferenciándose por el namespace.
-Los mensajes a EIS para uno y otro endpoint, serían los siguientes:
WSX|SvcEngage1|ws1.intSvcEngageClient|GetLen|<CustPkey>|<JobPkey>|<UserId>||123[EOM]
WSX|SvcEngage2|ws2.intSvcEngageClient|GetLen|<CustPkey>|<JobPkey>|<UserId>||123[EOM]
Las dlls se llaman SvcEngage1.dll y SvcEngage2.dll, y se informan en el segundo parámetro del mensaje.
En el tercer parámetro del mensaje se informan los nombres de las clases proxy contenidas en las dlls, y coinciden con el contract solamente en el namespace.
Para crear las clases proxy informando namespaces, pueden utilizar como guía los siguientes artículos del sitio colaborativo:
https://services.engage-sc.com.ar/articulos-tecnicos/uso-de-namespaces-en-la-generacion-de-una-dll/