Error con el servicio de búsqueda de SharePoint Server Enterprise 2010 en una instalación de servidor único.

La plataforma la podemos instalar en dos modalidades, en granja o como servidor único. La diferencia es que para poder instalar en granja debemos tener disponible un domino (Directorio Activo) si no, debemos instalarla como servidor único, con todas las implicancias que esto tiene.
Una de las diferencias delas dos modalidades, es que cuando se instala como servidor único automáticamente nos instala un SQL Server Express como motor de base de datos y está bien, ya que esta modalidad está pensada solo para ambientes de desarrollo o pequeñas instalaciones que nunca van a escalar.
Días pasado me encontré con un problema interesante, quería instalar SharePoint Server 2010 Enterprise como servidor único, pero quería usar mi motor de base de datos que ya tenía y no quería que me instalara un SQL Server Express. La versión anterior permitía hacer esto y no tenía ninguna restricción alguna, ya que muchas veces nosotros ya tenemos un motor de base de datos y más si son las maquinas que usamos para desarrollar, pues bien, me puse a buscar en Internet a ver que encontraba y al tercer hit, di con la solución, SharePoint 2010 se puede instalar como servidor único usando una base de datos existente, así que acá les comparto la fuete que utilice del blog sharepoint.microsoft.com
Una vez instalado SharePoint 2010 me puse a configurar los servicios más comunes y en seguida, me cree un portal para construir algunas funcionalidades que quería probar. Cuando termine de configurar las búsquedas y las probé, me percate que las mismas no estaban funcionando y cada búsqueda que hacía en el portal me arrojaba la pantalla de error de SharePoint 2010.
En el servicio de búsqueda veía todo bien, es decir, el indexador estaba prendido, no tenía errores desde la última indexación realizada, pero para estar seguro prendí de nuevo el indexador, hice una búsqueda completa y de nuevo lo mismo, indexo todo el contenido sin error. Volví al portal nuevamente, realice una búsqueda y de vuelta lo mismo, pantalla de error.
Me entre a preocupar porque no tenía sentido lo que estaba pasando, así que de nuevo me fui al servicio de búsqueda a ver que estaba pasando. Lo primero que revise fueron los ámbitos y ahí empezó a deslumbrarse el problema que estaba teniendo, los ámbitos estaban dando error al compilarse. Fui a la página de administración del servicio de búsqueda y me puse a revisar la configuración de la misma y la configuración de la topología, menuda sorpresa me lleve cuando vi que el componente de consultas del servicio seguía con el estado “Inicializando” y no estaba Online, ahí me di cuenta que el problema no era el indexador, si no el componente que resuelve las consultas que se hacen a través del buscador.
No entendía porque este seguía con el estado “Inicializando” y todo lo demás funcionaba correctamente. Ahí me acorde que mi granja en realidad no estaba instalada bajo un domino y las cuentas que estaba utilizando eran cuentas locales del servidor. Acto seguido me puse a navegar por internet y como era de esperarse me encontré con la solución en el blog de Soeren L. Nielsen donde mediante un script en PowerShell y un archivo XML se soluciona el problema. Acá les dejo el artículo donde encontrarán el script para descargárselo con el XML correspondiente. De todas formas, en la sección 1 podrán ver el XML con algunos comentarios que le agregue para aclarar algunas cosas.

[Sección 1]

  1. <Services>
  2.     <!– En este nodo deben definir los valores de configuración para el servicio–>
  3.     <EnterpriseSearchService  
  4.     ContactEmail="fabianimaz@gamil.com"
  5.     ConnectionTimeout="60"
  6.     AcknowledgementTimeout="60"
  7.     ProxyType="Default"
  8.     IgnoreSSLWarnings="false"
  9.     InternetIdentity="Mozilla/4.0 (compatible; MSIE 4.01; Windows NT; MS Search 6.0 Robot)"
  10.     IndexLocation="C:Program FilesMicrosoft Office Servers14.0DataOffice ServerApplications"
  11.     PerformanceLevel="PartlyReduced"
  12.     Account="Nombre de la maquina>Nombre de la cuenta local del equipo"
  13.     ShareName="SearchShare">
  14.  
  15.         <EnterpriseSearchServiceApplications>
  16.             <!– Acá deben definir como se llamara el nuevo serviciio de búsqueda
  17.       que van a crear, el servidor de base de datos, el nombre de la base
  18.             de datos que quieren crear–>
  19.             <EnterpriseSearchServiceApplication      
  20.         Name="Search Service Application Enterprise"
  21.         DatabaseServer="Nombre de la maquina"
  22.         DatabaseName="Search_Service_Application_Enterprise_DB"
  23.         FailoverDatabaseServer=""
  24.         Partitioned="false"
  25.         Partitions="1"
  26.         SearchServiceApplicationType="Regular">
  27.                 <!– Acá deben cargar el nombre de un pool de aplicaciónes
  28.           existente que quieren usar o uno nuevo para que se los cree–>                                                           
  29.                 <ApplicationPool Name="SharePoint Enterprise Search Application Pool"
  30.                          Account="Nombre de la maquinaNombre de la cuenta local del equipo" />
  31.                 <CrawlServers>
  32.                     <Server Name="Nombre de la maquina" />
  33.                 </CrawlServers>
  34.                 <QueryServers>
  35.                     <Server Name="Nombre de la maquina" />
  36.                 </QueryServers>
  37.                 <SearchQueryAndSiteSettingsServers>
  38.                     <Server Name="Nombre de la maquina" />
  39.                 </SearchQueryAndSiteSettingsServers>
  40.                 <AdminComponent>
  41.                     <Server Name="Nombre de la maquina" />
  42.                     <!– Acá deben cargar el nombre de un pool de aplicaciónes existente
  43.           que quieren usar o uno nuevo para que se los cree–>
  44.                     <ApplicationPool Name="SharePoint Enterprise Search Application Pool"
  45.                            Account="Nombre de la maquinaNombre de la cuenta local del equipo" />
  46.                 </AdminComponent>
  47.                 <!– Acá deben establer el nombre del proxy que desana crear
  48.         para que el servicio se pueda comunicar con los portales asociados.–>
  49.                 <Proxy Name="Search Service Application Enterprise Proxy" Partitioned="false">
  50.                     <ProxyGroup Name="Default" />
  51.                 </Proxy>
  52.             </EnterpriseSearchServiceApplication>
  53.         </EnterpriseSearchServiceApplications>
  54.     </EnterpriseSearchService>
  55. </Services>

Antes de empezar, les recomiendo que borren el servicio existente de búsqueda que tienen ya que el mismo no nos sirve. Una vez que están tenemos todo listo, lo que hacemos es abrir la consola de PowerShell de Windows, no la de SharePoint 2010 para correr el comando. A mí me resulto mucho más fácil editar el archivo “SetupEnterpriseSearch.ps1” copiar todo el contenido del mismo, pegarlo en ventana de PowerShell y correrlo, una vez copiado le damos enter para que aparezca nuevamente el símbolo del sistema y a continuación pegamos la siguiente comando como podemos verlo en la sección 2.

[Sección 2]

Start-EnterpriseSearch “D:SearchEnterpriseScriptSeacrhConfiguratioin.xml”

El comando “Start-EnterpriseSearhc” es creado por el script “SetupEnterpriseSearch.ps1” y el XML es el archivo de configuración que nosotros hemos creado. Puede que tengan errores, si es así deberán ajustar el archivo de configuración hasta lograr que el mismo funcione correctamente, en la imagen 1, podrán ver el proceso terminado y el servicio de búsqueda se crea perfectamente. Ahora sí, si buscamos información el motor de búsqueda devolverá resultados correctamente y los ámbitos se compilaron también correctamente.

[Imagen 1]
PowerShell Result

Deja un comentario

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