SharePoint und .Net 3.5
da ich keine funktionsfähige Implementierung (Package) für das .Net 3.5 Framework gefunden habe habe ich mal selbst ein Package erstellt was auch zu 100% funktioniert.
Die die ich im Web gefunden habe, haben alle das Problem mit der Reihenfolge in der Web.config gehabt.
<httpHandlers>
<remove verb="GET,HEAD,POST" path="*" />
<add verb="GET,HEAD,POST" path="*" type="Microsoft.SharePoint.ApplicationRuntime.SPHttpHandler, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
<add verb="OPTIONS,PROPFIND,PUT,LOCK,UNLOCK,MOVE,COPY,GETLIB,PROPPATCH,MKCOL,DELETE,(GETSOURCE),(HEADSOURCE),(POSTSOURCE)" path="*" type="Microsoft.SharePoint.ApplicationRuntime.SPHttpHandler, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" />
<remove verb="*" path="*.asmx" />
</httpHandlers>
Das Problem ist das die Änderungen in der DB gespeichert werden und nach Namen alphabetisch sortiert in die Web.config geschrieben werden.
Im Web habe ich eine Lösung gefunden die mich auf die richtig Spur geführt hat:
mod.AddChildNodeModification(
"handlers[1=1]/remove[@name='WebServiceHandlerFactory-Integrated']",
"configuration/system.webServer/handlers",
@"<remove name=""WebServiceHandlerFactory-Integrated"" />"
);
Dabei war das Problem das, wenn man die Anwendung in der Zentraladministration zurück gezogen hat, die Unterknoten unter <httpHandlers> nicht entfernt wurden! Das Problem ist darauf zurückzuführen das er den Namen im angegebenen Path in nicht findet.
Der Name Parameter in SPWebConfigModification ist ein XPath Ausdruck welcher von angegebenen Path aus sucht und somit vom Parent aus suchen muss.
So funktioniert es besser:
mod.AddChildNodeModification(
"../handlers[1=1]/remove[@name='WebServiceHandlerFactory-Integrated']",
"configuration/system.webServer/handlers",
@"<remove name=""WebServiceHandlerFactory-Integrated"" />"
);
Das Package enthält 3 Features:
- .Net 3.5 Basis
- WCF Support (Handler für *.svc")
- Silverlight 2 Support