En primer instancia me preocupe por algún posible problema de bipolaridad ó personalidades múltiples, ya que yo soy el administrador de la granja!!!.
Pero después de analizarlo con un cappuccino, me hice a la idea de que esto tenía que deberse a alguna ultima modificación ó configuración hecha sobre la granja en los últimos dias. Afortunadamente el proceso de eliminación fue fácil, un dia antes había descargado e instalado la feature 3.5 Web.Config, que se encuentra disponible dentro de todo un conjunto de features para SharePoint 2007 disponibles en codeplex.
Analizando un poco las modificaciones hechas en el web.config, a partir de la instalación de esta feature, me dí cuenta de algo ilógico.<httphandlers> <remove path="*" verb="GET,HEAD,POST"/> <add path="*" type="Microsoft.SharePoint.ApplicationRuntime.SPHttpHandler, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" verb="GET,HEAD,POST"> <add path="*" type="Microsoft.SharePoint.ApplicationRuntime.SPHttpHandler, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" verb="OPTIONS,PROPFIND,PUT,LOCK,UNLOCK,MOVE,COPY,GETLIB,PROPPATCH,MKCOL,DELETE,(GETSOURCE),(HEADSOURCE),(POSTSOURCE)"> <add path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" verb="*"> <add path="*.asmx" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" verb="*"> <add path="*_AppService.axd" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" verb="*"> <add path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" verb="GET,HEAD"> <remove path="*.asmx" verb="*"/> </httphandlers>
Y es que como se puede observar, al final de la declaración de los httphandlers, se agrega una declaración removiendo a todos los manejadores para archivos .asmx, go tha hell asmx files!. Como todos sabemos, SharePoint Designer hacen uso extensivo de los web services expuestos por SharePoint, pero como sus manejadores son removidos por la feature, al momento de solicitar el acceso para un usuario a través del servicio /_vti_bin/usergroup.asmx, este devuelve un error 401.
La solución rápida es muy simple, modificar el archivo web.config y colocar la línea siguiente al principio del bloque de httphandlers
<remove path="*.asmx" verb="*"/>
Asi:
<httphandlers> <remove path="*" verb="GET,HEAD,POST"/> <remove path="*.asmx" verb="*"/> <add path="*" type="Microsoft.SharePoint.ApplicationRuntime.SPHttpHandler, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" verb="GET,HEAD,POST"> <add path="*" type="Microsoft.SharePoint.ApplicationRuntime.SPHttpHandler, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" verb="OPTIONS,PROPFIND,PUT,LOCK,UNLOCK,MOVE,COPY,GETLIB,PROPPATCH,MKCOL,DELETE,(GETSOURCE),(HEADSOURCE),(POSTSOURCE)"> <add path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" verb="*"> <add path="*.asmx" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" verb="*"> <add path="*_AppService.axd" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" verb="*"> <add path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" verb="GET,HEAD"> </httphandlers>
La mejor solución es modificar el código de la feature, para que en usos posteriores ya no se presente este error. Para solucionar este error solo tienen que seguir estas instrucciones, para modificar la clase \Features_Project\3.5.Config\FeatureReceiver_35_SL.cs
//********************************** // Modified Here in order to fix a bug where the "remove" tag was being added to the end of the section. // From: "configuration/system.web/httpHandlers", // To: "/configuration/system.web/httpHandlers", // It turns out that the MS implementation of the webconfig modification class puts mods into an alphabetically sorted list (one for each type) // and ignores the Sequence number. // (Actually it's not ignored but seems to be used to determine a winner in case of a modification naming collision.) // The sorting is done on the full string of (path + "/" + name) // What this means for us is that as long as the "/" character sorts in front of the "a" character then this hack will cause the implementation to // add our modification after before the following "add" modifications. AddNodeValue( "remove[@path='*.asmx']", "/configuration/system.web/httpHandlers", @"<remove *.asmx="" *="" path="" verb=""> "</remove> ); //***********************************
Happy Coding!
0 comentarios:
Publicar un comentario