SharePoint 2013: Tip para desplegar y probar un manejador de eventos remoto en un despliegue OnPremise (II)!

Siguiendo con la serie de artículos sobre tips para desplegar y probar manejadores de eventos remotos en despliegues On-Premise, en esta ocasión vamos a ver un workaround necesario para que el manejador remoto esté operativo una vez desplegado:

  • Lo primero, os pongo en antecedentes: si creáis un manejador de eventos remoto en una aplicación de tipo SharePoint Hosted, os encontraréis conque al depurar el manejador funciona sin problemas como es esperable. En cambio, si desplegáis la aplicación y probáis el manejador remoto “en real”, pues veréis que no hace nada…¿Qué leches está pasando? Pues sin rascar el detalle, parece qué el servicio WCF con la lógica del manejador no se está registrando de forma correcta con la aplicación.
  • Y ahora a por el workaround para por lo menos conseguir que el manejador esté operativo cuando se despliega la aplicación…si nos vamos al explorador de soluciones de nuestro proyecto, veremos como el proyecto web que contiene la definición del manejador (os recuerdo que es un servicio WCF) tiene Urls de tipo http://localhost:puerto y https://localhost:puerto para las  propiedades Dirección URL y Dirección URL de SSL…lo que nos da una pista de dónde puede estar el problema, ya que la aplicación desplegada en SharePoint va a estar en un dominio aislado que no tiene nada que ver con localhost.

image

  • Esto me lleva de nuevo a qué, por un motivo que todavía no tengo claro, el servicio WCF del manejador no se está registrando de forma correcta con la aplicación…vale, ¿y cómo salimos del paso para probar en real el manejador? Pues de una forma relativamente sencilla: en primer lugar, desde el explorador de soluciones hacemos un “Browse” del servicio WCF para qué esté levantado.

image

  • En segundo lugar, en el proyecto de aplicación para SharePoint editamos el archivo “elements.xml” en el qué están definido el manejador y en particular los eventos a controlar. Si os fijáis en dicha definición, veréis que por cada evento a controlar hay una sección <Receiver> y dentro de la misma se recoge el tipo de evento a manejar utilizando la sección <Type> y la Url dónde está disponible el servicio WCF mediante la sección <Url>. Precisamente es la sección <Url> la clave de todo. Por defecto, el valor de la misma es algo así como ~remoteAppUrl/ServicioWCFManejador.svc…pero, por el motivo qué sea cuando se despliega la aplicación y se añade en un sitio, ese servicio WCF no está disponible en esa Url. Entonces, para qué el manejador esté operativo reemplazamos el valor de <Url> por el valor de la propiedad Dirección URL qué hemos comentado antes, es decir, por un valor de la forma http://localhost:puerto/ServicioWCFManejador.svc. Desplegamos de nuevo la aplicación y al probarla, comprobaremos qué el manejador funciona como debería.
   1:  <?xml version="1.0" encoding="utf-8"?>
   2:  <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
   3:    <Receivers ListTemplateId="10000">
   4:        <Receiver>
   5:          <Name>SPRERSampleItemAdding</Name>
   6:          <Type>ItemAdding</Type>
   7:          <SequenceNumber>10000</SequenceNumber>
   8:          <Url>http://localhost:17083/SPRERSample.svc</Url>
   9:        </Receiver>
  10:        <Receiver>
  11:          <Name>SPRERSampleItemDeleting</Name>
  12:          <Type>ItemDeleting</Type>
  13:          <SequenceNumber>10000</SequenceNumber>
  14:          <Url>~remoteAppUrl/SPRERSample.svc</Url>
  15:        </Receiver>
  16:        <Receiver>
  17:          <Name>SPRERSampleItemAdded</Name>
  18:          <Type>ItemAdded</Type>
  19:          <SequenceNumber>10000</SequenceNumber>
  20:          <Url>~remoteAppUrl/SPRERSample.svc</Url>
  21:        </Receiver>
  22:    </Receivers>
  23:  </Elements>

En el próximo post de la serie, espero contaros como registrar de forma correcta el manejador remoto en SharePoint 2013 OnPremise para evitar tener que realizar estos workaround.

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

3 comentarios en “SharePoint 2013: Tip para desplegar y probar un manejador de eventos remoto en un despliegue OnPremise (II)!”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *