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

Cuando estás tratando de desplegar un manejador de eventos remoto en SharePoint 2013 OnPremise, te puedes encontrar con ciertos comportamientos no esperados que por suerte tienen remedio. El primero de ellos es qué despliegues la aplicación asociada al manejador y te encuentres qué al ir a agregarla a un sitio:

  • Te encuentras conque la aplicación aparece deshabilitada, lo que impide qué se pueda agregar.
  • Si pulsas el enlace “Descubra por qué” bajo el icono de la aplicación, se muestra una página de detalle de la aplicación en la que se informa que no se puede agregar al sitio debido a qué la aplicación no es compatible con el servidor…es entonces cuando tras quedarte unos segundos perplejo ya qué el tipo de aplicación en este caso es de tipo “SharePoint Hosted”, te das cuenta qué a pesar de qué la aplicación se creó en este modo, es necesario realizar ciertas configuraciones adicionales relativas al manejador de eventos remoto para qué una vez desplegada se pueda agregar en el sitio.
  • En concreto, es necesario configurar adecuadamente los archivos “web.config” del manejador de eventos y manifiesto de la aplicación.
image image image
  • En el archivo “web.config”, es necesario comentar las propiedades que aparecen dentro de <appSettings> relativas a ClientId y ClientSecret qué para aplicaciones de tipo SharePoint Hosted no son necesarias.
   1:  <?xml version="1.0" encoding="utf-8"?>
   2:   
   3:  <!--
   4:    Para obtener más información sobre cómo configurar la aplicación de ASP.NET, visite
   5:    http://go.microsoft.com/fwlink/?LinkId=169433
   6:    -->
   7:   
   8:  <configuration>
   9:      <system.web>
  10:        <compilation debug="true" targetFramework="4.0" />
  11:      </system.web>
  12:    <appSettings>
  13:      <!--
  14:      <add key="ClientId" value="" />
  15:      <add key="ClientSecret" value="09I97+iEkkGT+NgQF9KJu7G/2712iNSmM7Moc+KQD3M=" />-->
  16:    </appSettings>
  17:    <system.serviceModel>
  18:      <bindings>
  19:        <basicHttpBinding>
  20:          <!--Usado por aplicación para SharePoint-->
  21:          <binding name="secureBinding">
  22:            <security mode="Transport" />
  23:          </binding>
  24:        </basicHttpBinding>
  25:      </bindings>
  26:      <protocolMapping>
  27:        <add binding="basicHttpBinding" scheme="https" bindingConfiguration="secureBinding" />
  28:      </protocolMapping>
  29:    </system.serviceModel>
  30:  </configuration>

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

  • En el manifiesto de la aplicación, en la etiqueta <AppPrincipal> comentamos la etiqueta que viene por defecto y añadimos <Internal/>.
   1:  <?xml version="1.0" encoding="utf-8" ?>
   2:  <!--Created:cb85b80c-f585-40ff-8bfc-12ff4d0e34a9-->
   3:  <App xmlns="http://schemas.microsoft.com/sharepoint/2012/app/manifest"
   4:       Name="SPRemoteEventReceiverApp"
   5:       ProductID="{f8f39e90-7b8b-4f23-b1ca-ae72aefe9195}"
   6:       Version="1.0.0.1"
   7:       SharePointMinVersion="15.0.0.0">
   8:    <Properties>
   9:      <Title>SP Remote Event Receiver App</Title>
  10:      <StartPage>~appWebUrl/Pages/Default.aspx?{StandardTokens}</StartPage>
  11:    </Properties>
  12:   
  13:    <AppPrincipal>
  14:      <!--<AutoDeployedWebApplication />
  15:      <Internal/>-->
  16:      <Internal/>
  17:    </AppPrincipal>
  18:  </App>

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

  • Si desplegamos de nuevo la aplicación, veremos que ya está disponible para agregar en nuestro sitio y que por lo tanto podemos empear a probar el manejador de eventos remoto.

image

Finalmente, si queremos desplegar la aplicación con el manejador de eventos remoto en SharePoint Online, tenemos que descomentar lo que se ha comentado en los archivos “web.config” y manifiesto de la aplicación.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s